Python使用PyPDF2操作PDF的詳細教程
安裝PyPDF2
首先,你需要安裝PyPDF2庫。你可以使用pip來安裝它:
pip install PyPDF2
讀取PDF文件
讀取PDF文件并打印其頁數(shù):
import PyPDF2 # 使用PyPDF2讀取pdf文件 if __name__ == '__main__': # 打開 PDF 文件 with open('example.pdf', 'rb') as file: # 創(chuàng)建一個 PDF 閱讀器對象 reader = PyPDF2.PdfReader(file) # 打印 PDF 文件中的頁數(shù) print(f'Number of pages: {len(reader.pages)}')
提取文本
從PDF文件中提取文本:
import PyPDF2 # 使用PyPDF2讀取pdf文本 if __name__ == '__main__': # 打開 PDF 文件 with open('example.pdf', 'rb') as file: # 創(chuàng)建一個 PDF 閱讀器對象 reader = PyPDF2.PdfReader(file) # 提取第一頁的文本 page = reader.pages[0] text = page.extract_text() print(text)
拆分PDF文件
將PDF文件拆分為兩個文件,一個文件包含奇數(shù)頁,一個文件包含偶數(shù)頁:
import PyPDF2 # 使用PyPDF2將PDF文件拆分為兩個文件,一個文件包含奇數(shù)頁,一個文件包含偶數(shù)頁: if __name__ == '__main__': # 創(chuàng)建一個 PDF 寫入器對象 odd_writer = PyPDF2.PdfWriter() even_writer = PyPDF2.PdfWriter() # 打開要拆分的 PDF 文件 with open('example.pdf', 'rb') as file: reader = PyPDF2.PdfReader(file) page_num = 0 for page in reader.pages: # print(page_num) if page_num % 2 == 0: # print(reader.pages[page_num]) odd_writer.add_page(page) else: even_writer.add_page(page) page_num = page_num+1 # 將拆分后的 PDF 寫入到一個新文件 with open('example1.pdf', 'wb') as output_pdf: odd_writer.write(output_pdf) # 將拆分后的 PDF 寫入到一個新文件 with open('example2.pdf', 'wb') as output_pdf: even_writer.write(output_pdf)
合并PDF文件
你可以將多個PDF文件合并為一個:
import PyPDF2 # 使用PyPDF2合并兩個pdf文件 if __name__ == '__main__': # 打開要合并的 PDF 文件 pdf_files = ['example1.pdf', 'example2.pdf'] # 創(chuàng)建一個 PDF 寫入器對象 merger = PyPDF2.PdfMerger() for pdf_file in pdf_files: merger.append(pdf_file) # 將合并后的 PDF 寫入到一個新文件 with open('merged.pdf', 'wb') as output_pdf: merger.write(output_pdf)
裁剪PDF頁面
PyPDF2并不直接支持裁剪頁面,但你可以通過提取頁面的部分內容并創(chuàng)建一個新的頁面來實現(xiàn)這一功能。以下是一個簡單的示例,演示如何裁剪頁面的上半部分:
import PyPDF2 # 使用PyPDF2裁剪PDF頁面,通過提取頁面的部分內容并創(chuàng)建一個新的頁面來實現(xiàn)這一功能 if __name__ == '__main__': # 打開 PDF 文件 with open('example.pdf', 'rb') as file: reader = PyPDF2.PdfReader(file) # 創(chuàng)建一個 PDF 寫入器對象 writer = PyPDF2.PdfWriter() # 獲取第一頁 page = reader.pages[0] # 定義裁剪區(qū)域(左下角和右上角的坐標) # 表示裁剪區(qū)域的左下角和右上角坐標 cropbox = page.cropbox x_lower_left = cropbox.lower_left[0] y_lower_left = cropbox.lower_left[1] + (cropbox.upper_right[1] - cropbox.lower_left[1]) / 2 x_upper_right = cropbox.upper_right[0] y_upper_right = cropbox.upper_right[1] # 設置裁剪區(qū)域(左下x, 左下y, 右上x, 右上y) page.cropbox.lower_left = (x_lower_left, y_lower_left) page.cropbox.upper_right = (x_upper_right, y_upper_right) writer.add_page(page) # 將裁剪后的 PDF 寫入到一個新文件 with open('cropped_example.pdf', 'wb') as output_pdf: writer.write(output_pdf)
加密PDF
from PyPDF2 import PdfWriter from PyPDF2 import PdfReader # 使用PyPDF2加密pdf if __name__ == '__main__': writer = PdfWriter() with open('example.pdf', 'rb') as file: reader = PdfReader(file) writer.add_page(reader.pages[0]) # 設置加密(128位 AES) writer.encrypt( user_password="password123", owner_password=None, use_128bit=True ) with open("encrypted.pdf", "wb") as out_file: writer.write(out_file)
到此這篇關于Python使用PyPDF2操作PDF的詳細教程的文章就介紹到這了,更多相關Python PyPDF2操作PDF內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python報mongod:?error?while?loading?shared?libraries:?l
這篇文章主要介紹的是Python報mongod:?error?while?loading?shared?libraries:?libcrypto.so.1.1的解決方法,下面文章解決過程,需要的小伙伴可以參考一下2022-02-02Python實現(xiàn)壓縮和解壓縮ZIP文件的方法分析
這篇文章主要介紹了Python實現(xiàn)壓縮和解壓縮ZIP文件的方法,結合具體實例形式分析了Python操作zip文件壓縮與解壓縮的常用操作技巧,需要的朋友可以參考下2017-09-09