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

Aspose.PDF FOSS for Java

从 Java 创建和操作 PDF 文档 — 支持注释、表单字段、页面操作以及 PDF/A 合规。采用 MIT 许可证。

免费的MIT许可证Java库用于PDF创建和操作

Aspose.PDF FOSS for Java 是一个 MIT 许可证的 Java 库,用于创建和处理 PDF 文档。它提供了一个全面的 Document 类作为中心入口点,并完整覆盖注释、交互式表单字段、页面操作、元数据以及 PDF/A 合规性验证。

该库公开了 527 个类,覆盖完整的 PDF 规范:通过 DocumentPagePageCollection 实现文档结构;通过 Annotation 层次结构(包括 WidgetAnnotationFreeTextAnnotationHighlightAnnotation)实现注释;使用 FormButtonFieldCheckboxFieldRadioButtonField 实现交互式表单;通过 BmpDevice 进行页面渲染;以及通过 ActionRulesActionFixes 检查 PDF/A 合规性。加密通过 AESCipher 的 CBC 模式提供。

在 Maven 项目中使用 groupId org.aspose 和 artifactId aspose-pdf 添加 Aspose.PDF FOSS。该库需要 Java 11 或更高版本,并完全采用 MIT 许可证。有关企业功能和支持,请参阅 Aspose.PDF for Java — Enterprise Product

文件结构和页面管理

  • 文档 API: 使用 Document 类来创建新的 PDF 文档。可以通过 Document(filePath)Document(stream) 构造函数访问现有文档。
  • 页面管理: 通过 PageCollection 添加、访问和修改页面。每个 Page 都公开 MediaBoxCropBox、旋转、资源和内容操作符。
  • 元数据: 通过 DocumentInfoXmpMetadata 读取和写入文档元数据。
  • PDF 结构: 通过 getParser()getCatalog()getTrailer() 访问底层 PDF 对象。
  • 嵌入文件: 使用 getEmbeddedFiles() 管理嵌入文件集合。

共同文件处理方案

  • PDF生成: 通过创建一个 Document 并填写页面来编程文件.
  • **文档分析:**访问现有文件以检查元数据或表单字段列表.
  • 页面操作:使用PdfFileEditorPage API来调整,旋转或重新排列页.
  • 批量工作流: 在服务器端管道中在多个文档上应用一致的转换.

说明和表格字段

  • **注释层次结构:**抽象的 Annotation 类是所有注册的基础;具体类型包括 WidgetAnnotation,FreeTextAnnotation, HighlightAnnotationUnderlineAnnotation.
  • ** 交互式表格:**通过 Document.getForm()访问文档表单,以列出或创建ButtonField,CheckboxFieldRadioButtonField 的实例.
  • 控制视觉属性通过 AppearanceCharacteristics 边界颜色,背景,旋转和标题.
  • 表单编辑: 使用FormEditorFormElement用于更高层次的表格操作.

文件审查和合作

  • 标记注释: 添加突出,强调或自由文本注解文件来审查工作流程.
  • ** 互动表格:** 用无线电按,选项框和按键来创建可填写的文件.
  • 表单数据提取: 读出服务器端管道的提交表格字段值.
  • ** 文件存档合规性:** 使用ActionRulesActionFixes来验证和修复长期存储的文档.

安全和内容操作

  • AES 加密: 使用 AESCipher 通过 CBC 模式(AESCipher.encrypt(key, data)AESCipher.decrypt(key, data))加密和解密数据字节数组。
  • 工件管理: 通过 ArtifactArtifactCollection API 识别并操作页眉、页脚、水印和背景图像。
  • 内容调整: 使用 PdfFileEditor.resizeContents()ContentsResizeParameters 调整页面内容布局。
  • 合规性验证: 使用 AnnotationRulesActionRules 验证注释和操作规则是否符合 PDF/A 标准。

文件安全使用案例

  • 加密的有效载荷: 使用AESCipher 进行文件流中嵌入数据部分的加码.
  • ** 文件保护:** 在合规工作流中应用安全设置.
  • 水印: 检测和管理 Artifact 表示水和页面装饰的对象.
  • ** 存档合规:**运行ActionFixesAnnotationFixes,使现有文件符合PDF/A-1b的存储标准.

使用小工具注释创建文档

创建一个新文档,添加页面并附上有风格的小工具注释.

try (Document doc = new Document()) ```java
try (Document doc = new Document()) {
    Page page = doc.getPages().add();
    WidgetAnnotation w = new WidgetAnnotation(page, new Rectangle(0, 0, 100, 50));
    w.getCharacteristics().setBorder(Color.fromRgb(1, 0, 0));
    w.getCharacteristics().setCaption("Submit");
    page.getAnnotations().add(w);
    doc.save("output.pdf");
}

使用无线电按创建表格

将无线电按组添加到文档表格中,并通过程序选择一个值.

try (Document doc = new Document()) {
    Page page = doc.getPages().add();
    RadioButtonField radio = new RadioButtonField(page);
    radio.setPartialName("choice");
    radio.addOption("Option1", new Rectangle(50, 50, 70, 70));
    radio.addOption("Option2", new Rectangle(50, 80, 70, 100));
    doc.getForm().add(radio, 1);
    radio.setValue("Option2");
    doc.save("form.pdf");
}

检查文档页面尺寸

访问现有文档并阅读第一页的媒体框尺寸.

try (Document doc = new Document("input.pdf")) {
    double width = doc.getPages().get(1).getMediaBox().getWidth();
    double height = doc.getPages().get(1).getMediaBox().getHeight();
    System.out.println("Page size: " + width + " x " + height);
}
  

支持和学习资源

 中文