用Python實現(xiàn)給Word文檔蓋章
目標文件夾內(nèi)有多份 Word 文件 ——【xxx漲薪通告.docx】,我們需要在這些文檔的末尾處添加公司的電子章與公司名稱。
這次的任務困難嗎?手動操作起來其實很簡單,無非就是先打開一個文檔,接著在結(jié)尾處添加文字蓋章:并且插入電子章圖片,然后另起一行,添加公司名稱閃光科技金融公司(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 調(diào)用 size,根據(jù)上面的表格,將導入的 Pt 設置好后賦值給 size 就可以設置字體的大小了。
具體寫法如下所示:
from docx.shared import Pt # 設置字體大小 Run 對象.font.size = Pt(14) # 字體大小
設置加粗
設置字體加粗的方式特別簡單,一行代碼就可以解決。
我們可以通過屬性 font 調(diào)用 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é)
本節(jié)是對使用 python-docx 處理 Word 文件的知識講解。
首先是 python-docx 會將 Word 文件分為三個層級:Document 對象、Paragraph 對象和 Run 對象。
然后是添加文字的兩種方法:
添加圖片可以使用Run 對象.add_picture(path)。
另外需要銘記的是:
設置段落的排版與布局,需要使用 Paragraph 對象的屬性:paragraph_format。
設置文字的字體樣式,需要使用 Run 對象的屬性:font。
最后來看看本節(jié)的知識點思維導圖。
總結(jié)
到此這篇關于用Python實現(xiàn)給Word文檔蓋章的文章就介紹到這了,更多相關Python Word文檔蓋章內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
網(wǎng)易有道2017內(nèi)推編程題 洗牌(python)
這篇文章主要為大家詳細介紹了網(wǎng)易有道2017內(nèi)推編程題:洗牌,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-06-06