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

這次的任務(wù)困難嗎?手動(dòng)操作起來其實(shí)很簡單,無非就是先打開一個(gè)文檔,接著在結(jié)尾處添加文字蓋章:并且插入電子章圖片,然后另起一行,添加公司名稱閃光科技金融公司(Shining Fintech Company),將公司名稱的字號(hào)設(shè)置為四號(hào),字體加粗,右對(duì)齊;完成這些操作后,復(fù)制這些文字和圖片,最后保存文檔。
實(shí)現(xiàn)代碼:
import os
from docx import Document
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.shared import Pt
# 設(shè)置目標(biāo)文件夾路徑
path = "../工作/漲薪通告-練習(xí)/"
# 獲取目標(biāo)文件夾下的所有文件名
file_list = os.listdir(path)
for file in file_list:
# 拼接文件路徑
file_path = path + file
# 打開 Word 文件
doc = Document(file_path)
# 添加 Paragraph 對(duì)象 para_1
para_1 = doc.add_paragraph('蓋章: ')
# 添加 Run 對(duì)象 run_stamp
run_stamp = para_1.add_run()
run_stamp.add_picture("./Shining.png")
# 添加 Paragraph 對(duì)象 para_2
para_2 = doc.add_paragraph()
# 設(shè)置對(duì)齊方式
para_2.paragraph_format.alignment = WD_ALIGN_PARAGRAPH.RIGHT
# 添加 Run 對(duì)象 run_comp
run_comp = para_2.add_run('閃光科技金融公司(Shining Fintech Company)')
# 設(shè)置字體
run_comp.font.size = Pt(14) # 字體大小
run_comp.font.bold = True # 字體加粗
# 保存文件
doc.save(file_path)本次代碼的詳細(xì)流程圖如下所示:

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


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

功能塊練習(xí)
這個(gè)功能塊都是些記憶性的知識(shí),寫代碼的時(shí)候記得參考上面的那些示例代碼,照貓畫虎就可以實(shí)現(xiàn)添加帶樣式的文字這個(gè)功能塊了。
from docx import Document
# 導(dǎo)入控制對(duì)齊方式所需
from docx.enum.text import WD_ALIGN_PARAGRAPH
# 導(dǎo)入控制字體大小所需
from docx.shared import Pt
# 設(shè)置文件路徑
file_path = './馬邦德漲薪通告.docx'
# 打開文檔
doc = Document(file_path)
# 添加段落2
para = doc.add_paragraph()
# 設(shè)置對(duì)齊方式
para.paragraph_format.alignment=WD_ALIGN_PARAGRAPH.RIGHT
# 添加 run_comp
run_comp = para.add_run("閃光金融公司(Shining Finance Company)")
# 設(shè)置字體大小為 14pt
run_comp.font.size=Pt(14)
# 設(shè)置字體加粗
run_comp.font.bold=True
# 保存文件
doc.save('./添加帶樣式的文字.docx')運(yùn)行效果:

一定要記住,設(shè)置字體要在 Run 對(duì)象中進(jìn)行,不要越俎代庖。Paragraph 對(duì)象的屬性管段落在文檔中的位置,Run 對(duì)象的屬性負(fù)責(zé)文字在段落中的樣式。分工明確,各司其職。
知識(shí)歸納與總結(jié)
本節(jié)是對(duì)使用 python-docx 處理 Word 文件的知識(shí)講解。
首先是 python-docx 會(huì)將 Word 文件分為三個(gè)層級(jí):Document 對(duì)象、Paragraph 對(duì)象和 Run 對(duì)象。

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

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

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

總結(jié)
到此這篇關(guān)于用Python實(shí)現(xiàn)給Word文檔蓋章的文章就介紹到這了,更多相關(guān)Python Word文檔蓋章內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
用Python實(shí)現(xiàn)流星雨效果的方法詳解
這篇文章主要為大家介紹了Python實(shí)現(xiàn)流星雨效果的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助<BR>2021-12-12
python之如何使用openpyxl設(shè)置單元格樣式
這篇文章主要介紹了python之如何使用openpyxl設(shè)置單元格樣式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06
網(wǎng)易有道2017內(nèi)推編程題 洗牌(python)
這篇文章主要為大家詳細(xì)介紹了網(wǎng)易有道2017內(nèi)推編程題:洗牌,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-06-06

