一、安装
pip install pypdf2
二、样例模版
# pip install pypdf2
def read_pdf1(path):
from PyPDF2 import PdfReader
reader = PdfReader(path)
print(reader.metadata)
for page in reader.pages:
print(page.extract_text())
def read_pdf2(path):
# pip install pdfplumber
import pdfplumber
with pdfplumber.open(path) as pdf:
for page in pdf.pages:
print(page.extract_text())
def merge_pdf(path1, path2):
from PyPDF2 import PdfReader, PdfWriter
writer = PdfWriter()
for path in [path1, path2]:
reader = PdfReader(path)
for page in reader.pages:
writer.add_page(page)
with open('merge.pdf', 'wb') as target:
writer.write(target)
def split_pdf(path):
from PyPDF2 import PdfReader, PdfWriter
reader = PdfReader(path)
for i,page in enumerate(reader.pages):
writer = PdfWriter()
writer.add_page(page)
with open(f'page_{i}.pdf', 'wb') as target:
writer.write(target)
def encrypt_pdf(path):
from PyPDF2 import PdfReader, PdfWriter
reader = PdfReader(path)
writer = PdfWriter()
for page in reader.pages:
writer.add_page(page)
writer.encrypt('password') # 加密PDF,密码为password
with open('encrypted.pdf', 'wb') as target:
writer.write(target)
def decrypt_pdf(path):
from PyPDF2 import PdfReader
reader = PdfReader(path)
reader.decrypt('password') # 读取PDF解密,密码为password
for page in reader.pages:
print(page.extract_text())
if __name__ == '__main__':
read_pdf1('./file_path/test.pdf')
read_pdf2('./file_path/test.pdf')
merge_pdf('./file_path/test-part1.pdf', './file_path/test-part2.pdf')
split_pdf('./file_path/test.pdf')
encrypt_pdf('./file_path/test.pdf')
decrypt_pdf('./file_path/encrypted.pdf')
三、特殊说明
使用的是PYPDF2 3.0.1的版本,3 以前的版本使用PdfFileReader,PdfFileWriter。
如需使用其他功能,参看官方文档,有好多方法不可用。