python办公实用功能_【一点资讯】实用办公技巧贴——当Python遇上PDF www.yidianzixun.com...
Portable Document Format(可移植文檔格式),即PDF是一種文件格式,可以用于跨操作系統的呈現和文檔交換。盡管PDF最初是由Adobe發明的,但它現在是由國際標準化組織(ISO)維護的開放標準。完全可以通過使用PyPDF2包在Python中處理已先存在的PDF哦!
PyPDF2是一個純Python包,可用于許多不同類型的PDF操作。
可以使用PyPDF2從PDF中提取元數據和一些文本,尤其是當在預先存在的PDF文件上執行某些類型的自動化時是非常有用的。
以下是當前可以提取的數據類型:Author
Creator
Producer
Subject
Title
Number of page
這里導入了兩個方法:PdfFileReader 可以理解為讀取器
PdfFileWriter可以理解為寫入器
接下來通過幾個案例進一步認識這兩個工具的奇妙之處,用到的示例文件是5個發票的pdf
每個發票的PDF都由兩頁組成:
合并
第一個工作是將5個發票pdf合并成10頁。這里讀取器和寫入器應該怎么配合呢?
邏輯如下:讀取器將所有pdf讀取一遍
讀取器將讀取的內容交給寫入器
寫入器統一輸出到一個新pdf
這里還有一個重要的知識點:讀取器只能將讀取的內容一頁一頁交給寫入器。因此,邏輯中第1步和第2步實際上不是彼此獨立的步驟,而是讀取器讀取完一個pdf后,就將這個pdf全部頁循環一遍,挨頁交給寫入器。最后等讀取工作全部結束后再輸出。
水印
本次的工作是將下圖作為水印添加到INV1.pdf中。
首先是準備工作,將需要作為水印的圖片插入word中調整合適位置后保存為PDF文件。然后就可以碼代碼了,需要額外用到copy模塊,具體解釋見下圖:
就是把讀取器和寫入器初始化,并且把水印PDF頁先讀取好備用,核心代碼稍微比較難理解:
加水印本質上就是把水印PDF頁和需要加水印的每一頁都合并一遍。由于需要加水印的PDF可能有很多頁,而水印PDF只有一頁,因此如果直接把水印PDF拿來合并,可以抽象理解成加完第一頁,水印PDF頁就沒有了。
因此不能直接拿來合并,而要把水印PDF頁不斷copy出來成新的一頁備用new_page,再運用.mergePage方法完成跟每一頁合并,把合并后的頁交給寫入器待最后統一輸出!
關于.mergePage的使用:出現在下面的頁.mergePage(出現在上面的頁),最后效果如圖:
加密
加密很簡單,只需要記住:「加密是針對寫入器加密」因此只需要在相關操作完成后調用pdf_writer.encrypt(密碼),以單個PDF的加密為例:
當然,Python的能力絕不止于對PDF的合并、拆分、加密、水印,使用Python結合Excel和Word實現更多的自動化需求都可以實現,更多精彩有待探索。
文章部分素材來源:AI科技大本營
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的python办公实用功能_【一点资讯】实用办公技巧贴——当Python遇上PDF www.yidianzixun.com...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: apex图表使用饼图居中_echarts
- 下一篇: python 变成float32_【Py