用Python實現(xiàn)給Word文檔蓋章
目標文件夾內有多份 Word 文件 ——【xxx漲薪通告.docx】,我們需要在這些文檔的末尾處添加公司的電子章與公司名稱。

這次的任務困難嗎?手動操作起來其實很簡單,無非就是先打開一個文檔,接著在結尾處添加文字蓋章:并且插入電子章圖片,然后另起一行,添加公司名稱閃光科技金融公司(Shining Fintech Company),將公司名稱的字號設置為四號,字體加粗,右對齊;完成這些操作后,復制這些文字和圖片,最后保存文檔。
實現(xiàn)代碼:
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)本次代碼的詳細流程圖如下所示:

值得一提的是,流程圖中添加文字的邏輯對應了簡化版的代碼。
你也可以使用常規(guī)版的流程(添加 Paragraph 對象 -> 添加 Run 對象 -> 添加文字)來添加文字。
本次項目需要使用到的新語法如下圖所示:


模塊分解
接著就可以打開下一個文檔,在文檔的最后粘貼剛才的文字和圖片,然后保存并關閉文檔。一直重復此操作,直到處理完所有的文檔。
然后再讓屬性 font 調用 size,根據(jù)上面的表格,將導入的 Pt 設置好后賦值給 size 就可以設置字體的大小了。
具體寫法如下所示:
from docx.shared import Pt # 設置字體大小 Run 對象.font.size = Pt(14) # 字體大小
設置加粗
設置字體加粗的方式特別簡單,一行代碼就可以解決。
我們可以通過屬性 font 調用 bold,然后將值設置為 True 即可。
具體寫法如下所示:
# 設置字體加粗 Run 對象.font.bold = True # 字體加粗
font 屬性還有很多其他功能,常用的還有給字體加下劃線、刪除線、斜體、顏色、指定字體等,只是他們與本項目無關,這里就用圖片簡單介紹一下,感興趣的自己去操作。

功能塊練習
這個功能塊都是些記憶性的知識,寫代碼的時候記得參考上面的那些示例代碼,照貓畫虎就可以實現(xiàn)添加帶樣式的文字這個功能塊了。
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 對象的屬性負責文字在段落中的樣式。分工明確,各司其職。
知識歸納與總結
本節(jié)是對使用 python-docx 處理 Word 文件的知識講解。
首先是 python-docx 會將 Word 文件分為三個層級:Document 對象、Paragraph 對象和 Run 對象。

然后是添加文字的兩種方法:

添加圖片可以使用Run 對象.add_picture(path)。

另外需要銘記的是:
設置段落的排版與布局,需要使用 Paragraph 對象的屬性:paragraph_format。
設置文字的字體樣式,需要使用 Run 對象的屬性:font。
最后來看看本節(jié)的知識點思維導圖。

總結
到此這篇關于用Python實現(xiàn)給Word文檔蓋章的文章就介紹到這了,更多相關Python Word文檔蓋章內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

