大家好,今天为大家分享一个强大的PDF文档操作python库 - pypdf。
github地址:https://github.com/py-pdf/pypdf
文档地址:https://pypdf.readthedocs.io/en/latest/
PYPDF是一个免费和开放的 source pure-python 能够拆分的 PDF 库, 合并、裁剪和转换 PDF 文件的页面。它还可以添加 自定义数据、查看选项和 PDF 文件的密码。 pypdf 也可以从 PDF 中检索文本和元数据。
准备使用python处理pdf文件的朋友会发现,有一系列名称类似的库:pyPdf、PyPDF2、PyPDF3、PyPDF4以及pypdf(这个和第一个库不是重复,注意字母大小写)的库,傻傻分不清,这些库难道只是版本不同而已吗?是不是pypdf4是最新的?到底适合选用哪个库?满眼都是小星星。
截止这篇文章pypdf的版本号为4.0.1!
pypdf 需要 Python 3.7+ 才能运行。
pip install pypdf
from pypdf import PdfReader
reader = PdfReader("example.pdf")
meta = reader.metadata
print(len(reader.pages))
# All of the following could be None!
print(meta.author)
print(meta.creator)
print(meta.producer)
print(meta.subject)
print(meta.title)
from datetime import datetime
from pypdf import PdfReader, PdfWriter
reader = PdfReader("example.pdf")
writer = PdfWriter()
# Add all pages to the writer
for page in reader.pages:
writer.add_page(page)
# If you want to add the old metadata, include this line
metadata = reader.metadata
writer.add_metadata(metadata)
# Format the current date and time for the metadata
utc_time = "-05'00'" # UTC time optional
time = datetime.now().strftime(f"D\072%Y%m%d%H%M%S{utc_time}")
# Add the new metadata
writer.add_metadata(
{
"/Author": "Martin",
"/Producer": "Libre Writer",
"/Title": "Title",
"/Subject": "Subject",
"/Keywords": "Keywords",
"/CreationDate": time,
"/ModDate": time,
"/Creator": "Creator",
"/CustomField": "CustomField",
}
)
# Save the new PDF to a file
with open("meta-pdf.pdf", "wb") as f:
writer.write(f)