docxtpl模塊的word模板替換內容


一、介紹

這個包使用兩個主要的包:

用於讀取、寫入和創建子文檔

用於管理插入到模板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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM