用途:面向 PDF 文件的各类处理需求,包括读取与提取文本/表格、合并或拆分、旋转页面、读取元数据、创建 PDF、OCR 扫描件、加水印、提取图片以及设置或移除密码。
主要能力:pypdf 用于基础操作,如合并(writer.add_page)、拆分、读取元数据(reader.metadata)、旋转(page.rotate(90))、水印(page.merge_page)和加密(writer.encrypt);pdfplumber 用于按布局提取文本(page.extract_text)与表格(page.extract_tables),可结合 pandas 导出 Excel;reportlab 用 Canvas 或 Platypus 创建 PDF,多页文档可通过 SimpleDocTemplate 加 PageBreak 构建。
命令行工具:pdftotext 提取文本,-layout 保留布局,-f/-l 指定页码范围;qpdf 支持合并(qpdf --empty --pages)、按页拆分、旋转(--rotate=+90:1)和去除密码(--password=... --decrypt);pdftk 可合并、burst 拆分、旋转(rotate 1east);pdfimages -j 提取图片。
OCR 与其它:扫描件可用 pdf2image 转图像后交给 pytesseract 识别,需 pip install pytesseract pdf2image;表单填写未在本文展开,指引参见 FORMS.md,高级用法(pypdfium2、JavaScript 库 pdf-lib)参见 REFERENCE.md。
限制与注意:在 reportlab 中不要使用 Unicode 上下标字符,内置字体不含这些字形会渲染成黑色方块,应改用 Paragraph 的 <sub> 与 <super> 标签,canvas 绘制时需手动调整字号与位置。以上为主要示例,未提供的细节以资料为准。