怎么在第一個PDF文件的中間,插入第二個PDF文件的內容?
大家好,我是Python進階者。
前言
前幾天在學習【麥叔】Python自動化書本中案例的時候,學到了PDF文件處理,感覺挺有意思的。正好在【J哥】的交流群里邊有粉絲問了一道關于PDF處理的問題。
這個問題如果沒有學點PDF的處理,一開始看到還是覺得有點困難的,我一開始也有點束手無策。
一、思路
針對這個問題,其實我有三個思路。
第一個思路:將pdf文件一進行分割成單獨文件,之后和pdf文件二進行排序放到一個文件夾下,再統一進行merge;
第二個思路:嘗試用merge進行合并,直接插入到文件的指定頁面之下,但是我目前對這個用的不是很好,沒有弄出來;
第三個思路:逐頁進行添加,并保存為新文件。
二、解決方案
針對該問題,這里采用了第三個方法,最為自然,也是三個方法中最簡單的一個了。這里需要用到PDF的處理庫PyPDF2,這個庫需要安裝,安裝命令:pip install PyPDF2
這個庫針對PDF的處理來說還是算比較強大的了,可以針對PDF文件做拆分、合并、加密和截取等。關于這個庫的其他用法,很多公眾號也有寫,這里就不展開贅述了。
針對這個問題,這里直接上代碼了,如下所示:
from PyPDF2 import PdfFileReader, PdfFileWriter
pdf_file1 = PdfFileReader("dogs_0.pdf") # 要插入的pdf文件
pdf_file2 = PdfFileReader("python介紹.pdf") # 要被插入的目標pdf文件
new_file = PdfFileWriter()
# 這里場景是計劃將pdf_file1插入到pdf_file2的第3頁
new_file.addPage(pdf_file2.getPage(0))
new_file.addPage(pdf_file2.getPage(1))
new_file.addPage(pdf_file1.getPage(0))
new_file.addPage(pdf_file2.getPage(2))
# 寫入文件
with open("merged_file.pdf", "wb") as f:
new_file.write(f)
關鍵的地方都有注釋進行標注了,如果你需要插入的pdf原始文件頁面太多的話,可以考慮循環遍歷追加,這樣就不至于寫很多行代碼了。
三、總結
我是Python進階者。本文基于實際過程中遇到的PDF文件拆分和合并問題,使用了PyPDF2第三方庫來幫助解決,這個庫可以針對PDF文件做拆分、合并、加密和截取等,功能強大,幫助自己和大家加深對該庫用法的認識。