Python利用PyPDF2庫處理PDF文件的基本操作
安裝PyPDF2
在開始之前,需要安裝PyPDF2庫。使用pip進(jìn)行安裝:
pip install PyPDF2
基本PDF操作
1. 合并PDF文件
使用PyPDF2合并多個(gè)PDF文件為一個(gè)文件。
以下是一個(gè)示例代碼:
import PyPDF2
pdf1 = open("file1.pdf", "rb")
pdf2 = open("file2.pdf", "rb")
output = open("merged.pdf", "wb")
pdf_reader1 = PyPDF2.PdfFileReader(pdf1)
pdf_reader2 = PyPDF2.PdfFileReader(pdf2)
pdf_writer = PyPDF2.PdfFileWriter()
for page_num in range(pdf_reader1.numPages):
page = pdf_reader1.getPage(page_num)
pdf_writer.addPage(page)
for page_num in range(pdf_reader2.numPages):
page = pdf_reader2.getPage(page_num)
pdf_writer.addPage(page)
pdf_writer.write(output)
pdf1.close()
pdf2.close()
output.close()
2. 分割PDF文件
分割一個(gè)PDF文件為多個(gè)文件。
以下是一個(gè)示例代碼:
import PyPDF2
pdf = open("source.pdf", "rb")
pdf_reader = PyPDF2.PdfFileReader(pdf)
for page_num in range(pdf_reader.numPages):
pdf_writer = PyPDF2.PdfFileWriter()
pdf_writer.addPage(pdf_reader.getPage(page_num))
output = open(f"page_{page_num + 1}.pdf", "wb")
pdf_writer.write(output)
output.close()
pdf.close()
3. 旋轉(zhuǎn)PDF頁面
旋轉(zhuǎn)PDF頁面。
以下是一個(gè)示例代碼:
import PyPDF2
pdf = open("file.pdf", "rb")
pdf_reader = PyPDF2.PdfFileReader(pdf)
pdf_writer = PyPDF2.PdfFileWriter()
for page_num in range(pdf_reader.numPages):
page = pdf_reader.getPage(page_num)
page.rotateClockwise(90) # 旋轉(zhuǎn)90度
pdf_writer.addPage(page)
output = open("rotated.pdf", "wb")
pdf_writer.write(output)
pdf.close()
output.close()
4. 提取PDF文本
提取PDF中的文本。
以下是一個(gè)示例代碼:
import PyPDF2
pdf = open("file.pdf", "rb")
pdf_reader = PyPDF2.PdfFileReader(pdf)
text = ""
for page_num in range(pdf_reader.numPages):
page = pdf_reader.getPage(page_num)
text += page.extractText()
print(text)
高級(jí)PDF操作
1. 添加水印
在PDF頁面上添加水印。
以下是一個(gè)示例代碼:
import PyPDF2
pdf = open("file.pdf", "rb")
pdf_reader = PyPDF2.PdfFileReader(pdf)
pdf_writer = PyPDF2.PdfFileWriter()
watermark = PyPDF2.PdfFileReader(open("watermark.pdf", "rb"))
for page_num in range(pdf_reader.numPages):
page = pdf_reader.getPage(page_num)
page.mergePage(watermark.getPage(0))
pdf_writer.addPage(page)
output = open("watermarked.pdf", "wb")
pdf_writer.write(output)
pdf.close()
output.close()
2. 加密PDF文件
使用PyPDF2來加密PDF文件。
以下是一個(gè)示例代碼:
import PyPDF2
pdf = open("file.pdf", "rb")
pdf_reader = PyPDF2.PdfFileReader(pdf)
pdf_writer = PyPDF2.PdfFileWriter()
for page_num in range(pdf_reader.numPages):
page = pdf_reader.getPage(page_num)
pdf_writer.addPage(page)
pdf_writer.encrypt("password", "owner_password")
output = open("encrypted.pdf", "wb")
pdf_writer.write(output)
pdf.close()
output.close()
3. 提取圖像
使用PyPDF2提取PDF中的圖像。
以下是一個(gè)示例代碼:
import PyPDF2
pdf = open("file.pdf", "rb")
pdf_reader = PyPDF2.PdfFileReader(pdf)
for page_num in range(pdf_reader.numPages):
page = pdf_reader.getPage(page_num)
xObject = page['/Resources']['/XObject'].get_object()
for obj in xObject:
if xObject[obj]['/Subtype'] == '/Image':
img = xObject[obj]
data = img.get_data()
with open(f"image_{page_num + 1}.jpg", "wb") as f:
f.write(data)
pdf.close()
總結(jié)
PyPDF2是一個(gè)功能豐富的Python庫,用于處理PDF文件。無論是需要合并、分割、旋轉(zhuǎn)、提取文本,還是進(jìn)行更高級(jí)的操作如添加水印、加密、提取圖像,PyPDF2都能滿足需求。
通過本文的介紹和示例代碼,可以更好地掌握PyPDF2,將其應(yīng)用于各種PDF文件處理任務(wù)中,提高工作效率,簡(jiǎn)化操作。
以上就是Python利用PyPDF2庫處理PDF文件的基本操作的詳細(xì)內(nèi)容,更多關(guān)于Python PyPDF2處理PDF文件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python 服務(wù)器運(yùn)行代碼報(bào)錯(cuò)ModuleNotFoundError的解決辦法
這篇文章主要介紹了python 服務(wù)器運(yùn)行代碼報(bào)錯(cuò)ModuleNotFoundError的解決辦法,幫助大家排除錯(cuò)誤,正確的運(yùn)行代碼,感興趣的朋友可以了解下2020-09-09
淺談numpy 函數(shù)里面的axis參數(shù)的含義
這篇文章主要介紹了numpy 函數(shù)里面的axis參數(shù)的含義,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-05-05
從入門到精通詳解Python中User-Agent的使用終極指南
User-Agent是HTTP協(xié)議頭部的一個(gè)字段,用于標(biāo)識(shí)客戶端的身份信息,在Python網(wǎng)絡(luò)編程中,User-Agent(用戶代理)扮演著至關(guān)重要的角色,下面小編就和大家詳細(xì)介紹一下Python中User-Agent的使用吧2026-05-05
Python文件讀寫處理日常任務(wù)終極工具實(shí)例
Python文件的讀寫操作時(shí),有很多需要考慮的細(xì)節(jié),這包括文件打開方式、讀取和寫入數(shù)據(jù)的方法、異常處理等,在本文中,將深入探討Python中的文件操作,旨在提供全面的指南,幫你充分了解Python文件的讀寫2023-11-11
使用python把json文件轉(zhuǎn)換為csv文件
這篇文章主要介紹了使用python把json文件轉(zhuǎn)換為csv文件,幫助大家更好的利用python處理數(shù)據(jù),感興趣的朋友可以了解下2021-03-03

