一、介紹
這個包使用兩個主要的包:
用於讀取、寫入和創建子文檔
用於管理插入到模板docx中的標記
python-docx模板已經創建,因為python-docx對於創建文檔非常強大,但是對於修改文檔卻無能為力。
這個想法是開始創建一個你想要用microsoft word生成的文檔的例子,它可以像你想要的那樣復雜:圖片,索引表,頁腳,頁眉,變量,任何你可以用word做的事情。然后,由於您仍然在使用microsoft word編輯文檔,所以可以直接在文檔中插入類似jinja2的標記。您將文檔保存為.docx文件(xml格式):它將是您的.docx模板文件。
現在可以使用python-docx-template從.docx模板和關聯的上下文變量中生成任意數量的word文檔。
更多高級用法請查看文檔,以下是簡單示例
https://docxtpl.readthedocs.io/en/latest/#jinja2-like-syntax
二、代碼
from docxtpl import DocxTemplate def temp_word(tmep_path,word_apth): tpl = DocxTemplate(tmep_path) # 需要替換內容以key:value的方式進行更換 context = { "name":"上海市XXXXXX公司", "num":"num0000001", "custom":"上海市XXXXXX公司", "year":"2020", "month":"1", "day":"2" } tpl.render(context) tpl.save(word_apth)
三、word模板
模板展示
第一步:
此時是紅色的

第二步:
選中{{name}}后鼠標右擊,選着接收插入

第三步:
運行程序

四、word轉pdf
word轉pdf還有個前提是安裝一個官方插件,不然會報錯
網盤:https://pan.baidu.com/s/1jGX48q5cZRmlDfsUN3Jh4g
密碼:lt3n
from win32com.client import constants, gencache import win32ui dlg = win32ui.CreateFileDialog(1) # 1表示打開文件對話框 dlg.SetOFNInitialDir(r"C:\Users\admin\Desktop") # 設置打開文件對話框中的初始顯示目錄 dlg.DoModal() filename = dlg.GetPathName() # 獲取選擇的文件名稱 def createPdf(wordPath, pdfPath): """ word轉pdf :param wordPath: word文件路徑 :param pdfPath: 生成pdf文件路徑 """ word = gencache.EnsureDispatch('Word.Application') doc = word.Documents.Open(wordPath, ReadOnly=1) doc.ExportAsFixedFormat(pdfPath, constants.wdExportFormatPDF, Item=constants.wdExportDocumentWithMarkup, CreateBookmarks=constants.wdExportCreateHeadingBookmarks) word.Quit(constants.wdDoNotSaveChanges) if filename.split(".")[1] =="docx": p=filename.split(".")[0]+".pdf" createPdf(filename,p)
