一、介紹
這個包使用兩個主要的包:
用于讀取、寫入和建立子文檔
用于管理插入到模闆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)