1. 产品
  2.   Aspose.PDF
  3.   Aspose.PDF FOSS for Python

Python 的 Aspose.PDF FOSS

开源 Python 库,用于创建、读取、编辑、渲染和验证 PDF 文档 —— MIT 许可证,无运行时费用。

Aspose.PDF FOSS — 开源 Python PDF 库

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 创建、加载、保存和合并 PDF
  • 使用可变的 PageCollection(通过 document.pages 暴露)管理页面
  • 使用 Page.add_text() 添加定位的 Standard-14 或嵌入的 Unicode 文本
  • 使用 Page.add_image() 在页面上放置原始、JPEG 或 PNG 图像
  • 使用 Page.draw_rectangle() 和 Page.draw_line() 绘制矢量形状

实际场景

  • 程序化生成发票、证书和报告
  • 从共享模板批量生成文档
  • 从生成的章节组装多页报告
  • 在 Web 服务中完全在内存中构建 PDF

文本提取和搜索

  • 使用 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 或 TIFF
  • 使用 Document.save_page_as_image() 批量渲染整个文档
  • 使用 dpi 参数控制分辨率,使用 antialias 控制边缘质量
  • 从返回的 RasterizedPage 中读取原始像素数据

实际场景

  • 为文档管理库生成页面缩略图
  • 从完成的布局生成可打印的 TIFF 样张
  • 为文档查看器构建页面预览图库
  • 将旧版 PDF 档案转换为基于图像的查看格式

表单和交互式字段

  • 通过 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() 扁平化

实际场景

  • 自动化发票和合同表单填写流程
  • 在分发前预填充应用模板
  • 将已填写的表单存档为不可编辑的静态内容 PDF
  • 提取提交的字段值以进行下游处理

安全、加密和签名

  • 使用用户密码和所有者密码通过 Document.encrypt() 加密文档
  • 使用 Document.change_passwords() 和 Document.decrypt() 更改或清除密码
  • 使用 PdfSignature.validate() 验证嵌入的数字签名
  • 使用可配置的 PdfLoadLimits 限制不受信任的输入
  • 通过 ValidationResult 检查签署者、信任和吊销状态

实际场景

  • 用每个收件人密码保护机密报告
  • 在归档前验证已签署的合同
  • 加固 PDF 摄取管道以防恶意上传
  • 对分发的文件实施打印和复制权限限制

PDF/A 和 PDF/UA 合规性

  • 使用 Document.validate_pdfa() 运行启发式 PDF/A 验证
  • 使用 Document.convert_to_pdfa() 将文档转换为 PDF/A
  • 使用 Document.validate_pdfua() 运行启发式 PDF/UA 可访问性检查
  • 使用 Document.auto_tag() 自动为现有页面内容标记为结构树
  • 通过 Document.tagged_content 检查并编辑标签树

实际场景

  • 为长期数字存档准备外发文档
  • 在发布前筛选传入的 PDF 以查找可访问性差距
  • 为受监管行业构建合规报告
  • 将遗留 PDF 修复至可访问性标准

创建 PDF 并添加文本

在几行代码中构建一个新的 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)

从 PDF 中提取文本

绑定文档并使用提取器外观提取其所有页面文本。

from aspose_pdf import PdfExtractor
with PdfExtractor() as extractor:
    extractor.bind_pdf("input.pdf")
    extractor.extract_text()
    print(extractor.get_text())

合并 PDF 文件

将多个 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)
  

支持和学习资源

 中文