首頁 > 軟體

用Python實現給Word檔案蓋章

2022-02-11 16:01:07

目標資料夾內有多份 Word 檔案 ——【xxx漲薪通告.docx】,我們需要在這些檔案的末尾處新增公司的電子章與公司名稱。

這次的任務困難嗎?手動操作起來其實很簡單,無非就是先開啟一個檔案,接著在結尾處新增文字蓋章:並且插入電子章圖片,然後另起一行,新增公司名稱閃光科技金融公司(Shining Fintech Company),將公司名稱的字號設定為四號,字型加粗,右對齊;完成這些操作後,複製這些文字和圖片,最後儲存檔案。

實現程式碼:

import os
from docx import Document
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.shared import Pt
 
# 設定目標資料夾路徑
path = "../工作/漲薪通告-練習/"
 
# 獲取目標資料夾下的所有檔名
file_list = os.listdir(path)
 
for file in file_list:
    # 拼接檔案路徑
    file_path = path + file
    
    # 開啟 Word 檔案
    doc = Document(file_path)
 
    # 新增 Paragraph 物件 para_1
    para_1 = doc.add_paragraph('蓋章: ')
    # 新增 Run 物件 run_stamp
    run_stamp = para_1.add_run()
    run_stamp.add_picture("./Shining.png")
 
    # 新增 Paragraph 物件 para_2
    para_2 = doc.add_paragraph()
    # 設定對齊方式
    para_2.paragraph_format.alignment = WD_ALIGN_PARAGRAPH.RIGHT
    # 新增 Run 物件 run_comp
    run_comp = para_2.add_run('閃光科技金融公司(Shining Fintech Company)')
    # 設定字型
    run_comp.font.size = Pt(14) # 字型大小
    run_comp.font.bold = True # 字型加粗
 
    # 儲存檔案
    doc.save(file_path)

本次程式碼的詳細流程圖如下所示:

值得一提的是,流程圖中新增文字的邏輯對應了簡化版的程式碼。

你也可以使用常規版的流程(新增 Paragraph 物件 -> 新增 Run 物件 -> 新增文字)來新增文字。

本次專案需要使用到的新語法如下圖所示:

模組分解

接著就可以開啟下一個檔案,在檔案的最後貼上剛才的文字和圖片,然後儲存並關閉檔案。一直重複此操作,直到處理完所有的檔案。

然後再讓屬性 font 呼叫 size,根據上面的表格,將匯入的 Pt 設定好後賦值給 size 就可以設定字型的大小了。

具體寫法如下所示:

from docx.shared import Pt
 
# 設定字型大小
Run 物件.font.size = Pt(14) # 字型大小

設定加粗

設定字型加粗的方式特別簡單,一行程式碼就可以解決。

我們可以通過屬性 font 呼叫 bold,然後將值設定為 True 即可。

具體寫法如下所示:

# 設定字型加粗
Run 物件.font.bold = True # 字型加粗

font 屬性還有很多其他功能,常用的還有給字型加下劃線、刪除線、斜體、顏色、指定字型等,只是他們與本專案無關,這裡就用圖片簡單介紹一下,感興趣的自己去操作。

功能塊練習

這個功能塊都是些記憶性的知識,寫程式碼的時候記得參考上面的那些範例程式碼,照貓畫虎就可以實現新增帶樣式的文字這個功能塊了。

from docx import Document
# 匯入控制對齊方式所需
from docx.enum.text import WD_ALIGN_PARAGRAPH
# 匯入控制字型大小所需
from docx.shared import Pt
 
# 設定檔案路徑
file_path = './馬邦德漲薪通告.docx'
 
# 開啟檔案
doc = Document(file_path)
# 新增段落2
para = doc.add_paragraph()
# 設定對齊方式
para.paragraph_format.alignment=WD_ALIGN_PARAGRAPH.RIGHT
# 新增 run_comp
run_comp = para.add_run("閃光金融公司(Shining Finance Company)")
# 設定字型大小為 14pt
run_comp.font.size=Pt(14)
# 設定字型加粗
run_comp.font.bold=True
# 儲存檔案
doc.save('./新增帶樣式的文字.docx')

執行效果:

 一定要記住,設定字型要在 Run 物件中進行,不要越俎代庖。Paragraph 物件的屬性管段落在檔案中的位置,Run 物件的屬性負責文字在段落中的樣式。分工明確,各司其職。

知識歸納與總結

本節是對使用 python-docx 處理 Word 檔案的知識講解。

首先是 python-docx 會將 Word 檔案分為三個層級:Document 物件、Paragraph 物件和 Run 物件。

然後是新增文字的兩種方法:

新增圖片可以使用Run 物件.add_picture(path)。

另外需要銘記的是:

設定段落的排版與佈局,需要使用 Paragraph 物件的屬性:paragraph_format。
設定文字的字型樣式,需要使用 Run 物件的屬性:font。

最後來看看本節的知識點思維導圖。

總結

到此這篇關於用Python實現給Word檔案蓋章的文章就介紹到這了,更多相關Python Word檔案蓋章內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com