Python处理pdf文件库 - PyPDF2详解
生活随笔
收集整理的這篇文章主要介紹了
Python处理pdf文件库 - PyPDF2详解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
工作中可能會涉及處理pdf文件,PyPDF2就是這樣一個庫, 使用它可以輕松的處理pdf文件,它提供了讀、寫、分割、合并、文件轉換等多種操作。官方地址:http://mstamy2.github.io/PyPDF2/
安裝
使用
PyPDF2 包含了 PdfFileReader PdfFileMerger PageObject PdfFileWriter 四個常用的主要 Class。
簡單讀寫
from PyPDF2 import PdfFileReader, PdfFileWriter readFile = 'read.pdf' writeFile = 'write.pdf' # 獲取一個 PdfFileReader 對象 pdfReader = PdfFileReader(open(readFile, 'rb')) # 獲取 PDF 的頁數 pageCount = pdfReader.getNumPages() print(pageCount) # 返回一個 PageObject page = pdfReader.getPage(i) # 獲取一個 PdfFileWriter 對象 pdfWriter = PdfFileWriter() # 將一個 PageObject 加入到 PdfFileWriter 中 pdfWriter.addPage(page) # 輸出到文件中 pdfWriter.write(open(writeFile, 'wb'))合并分割 PDF
from PyPDF2 import PdfFileReader, PdfFileWriter def split_pdf(infn, outfn):pdf_output = PdfFileWriter()pdf_input = PdfFileReader(open(infn, 'rb'))# 獲取 pdf 共用多少頁page_count = pdf_input.getNumPages()print(page_count)# 將 pdf 第五頁之后的頁面,輸出到一個新的文件for i in range(5, page_count):pdf_output.addPage(pdf_input.getPage(i))pdf_output.write(open(outfn, 'wb')) def merge_pdf(infnList, outfn):pdf_output = PdfFileWriter()for infn in infnList:pdf_input = PdfFileReader(open(infn, 'rb'))# 獲取 pdf 共用多少頁page_count = pdf_input.getNumPages()print(page_count)for i in range(page_count):pdf_output.addPage(pdf_input.getPage(i))pdf_output.write(open(outfn, 'wb')) if __name__ == '__main__':infn = 'infn.pdf'outfn = 'outfn.pdf'split_pdf(infn, outfn)其他命令
如果是要修改一個已有的 pdf 文件,可以將 reader 的頁面添加到 writer 中:
pdfWriter.appendPagesFromReader(reader)
添加書簽:
pdfWriter.addBookmark(title, pagenum, parent=parent)
總結
以上是生活随笔為你收集整理的Python处理pdf文件库 - PyPDF2详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python中带下划线_的变量和函数命名
- 下一篇: 深入理解python中的select模块