Aspose.PDF FOSS for Python 是一个用于创建、读取、编辑、渲染和验证 PDF 文档的开源库。该库基于 Python 3.11 及更高版本构建,随附类型信息,并可集成到任何 Python 项目中(请参阅下文的安装章节)。项目目前处于 alpha 阶段,因此 API 和功能覆盖将在首次正式发布之前持续演进。
Document 类是核心入口,提供 pages、form、outlines 和 tagged_content 用于结构化编辑,同时支持 encrypt、decrypt、merge、optimize 和 flatten 等操作。文本可通过 Page.add_text() 添加,并使用 PdfExtractor 和 TextFragmentAbsorber 进行提取或搜索,支持基于短语和正则表达式的替换与遮蔽。页面可通过 Page.render() 和 Page.save_as_image() 渲染为 PNG 或 TIFF 栅格图像。交互式 AcroForm 字段可通过 Form 和 Field 创建并填写,文档还能使用 Document.validate_pdfa()、Document.convert_to_pdfa() 和 Document.auto_tag() 检查或转换为符合 PDF/A 与 PDF/UA 标准。
Aspose.PDF FOSS for Python 在 MIT 许可证下发布,无运行时费用或使用限制。核心包仅依赖 cryptography 和 asn1crypto,可选扩展包括基于 Pillow 的图像支持、基于 Brotli 的 WOFF2 解码以及基于 HarfBuzz 的复杂文本布局。有关企业功能和支持,请参阅 Aspose.PDF for Python — Enterprise Product。
Document 创建、加载、保存和合并 PDFPageCollection(通过 document.pages 暴露)管理页面Page.add_text() 添加定位的 Standard-14 或嵌入的 Unicode 文本Page.add_image() 在页面上放置原始、JPEG 或 PNG 图像Page.draw_rectangle() 和 Page.draw_line() 绘制矢量形状PdfExtractor 和 get_text() 提取所有页面文本has_next_page_text() 和 get_next_page_text() 逐页遍历文本TextFragmentAbsorber 搜索精确短语和正则表达式模式Document.replace_text() 替换匹配的文本Document.redact_text() 对匹配的文本进行编辑遮蔽,可选地绘制覆盖条Page.render() 将页面渲染为不依赖的 RGB 光栅Page.save_as_image() 将渲染输出保存为 PNG 或 TIFFDocument.save_page_as_image() 批量渲染整个文档dpi 参数控制分辨率,使用 antialias 控制边缘质量RasterizedPage 中读取原始像素数据Document.form 读取并遍历 AcroForm 字段Form.add_text_field() 创建文本字段Form.add_checkbox() 和 Form.add_radio_group() 创建复选框和单选组Form.add_list_box() 和 Form.add_combo_box() 创建列表框和组合框Field.value 按字段名称设置值,然后使用 Document.flatten() 扁平化Document.encrypt() 加密文档Document.change_passwords() 和 Document.decrypt() 更改或清除密码PdfSignature.validate() 验证嵌入的数字签名PdfLoadLimits 限制不受信任的输入ValidationResult 检查签署者、信任和吊销状态Document.validate_pdfa() 运行启发式 PDF/A 验证Document.convert_to_pdfa() 将文档转换为 PDF/ADocument.validate_pdfua() 运行启发式 PDF/UA 可访问性检查Document.auto_tag() 自动为现有页面内容标记为结构树Document.tagged_content 检查并编辑标签树在几行代码中构建一个新的 PDF 文档并向页面添加定位文本。
git clone https://github.com/aspose-pdf-foss/Aspose-PDF-FOSS-for-Python.git
cd Aspose-PDF-FOSS-for-Python
pip install -e .from aspose_pdf import Document
with Document() as document:
page = document.pages.add()
page.add_text(
"Hello from Aspose.PDF FOSS!",
x=72,
y=720,
font_size=18,
)
document.save("hello.pdf")
加载现有 PDF 并以可配置的 DPI 将其首页保存为光栅图像。
from aspose_pdf import Document
with Document() as document:
document.load_from("input.pdf")
document.pages[0].save_as_image("page-1.png", dpi=144)
绑定文档并使用提取器外观提取其所有页面文本。
from aspose_pdf import PdfExtractor
with PdfExtractor() as extractor:
extractor.bind_pdf("input.pdf")
extractor.extract_text()
print(extractor.get_text())
将多个 PDF 文件合并为单个输出文档。
from aspose_pdf import PdfFileEditor
with PdfFileEditor() as editor:
if not editor.concatenate(["part-1.pdf", "part-2.pdf"], "merged.pdf"):
raise RuntimeError(editor.last_exception)