
PDF 页面内的内容很难编辑,但 PDF 规范定义了一套完整的对象,可以将其添加到 PDF 页面中而无需更改页面内容。这些对象称为注释,其用途包括标记页面内容和实现表单等交互功能。
大多数 PDF 查看器允许创建和编辑各种注释类型,例如文本突出显示、注释、线条或形状,并且无论创建的注释类型如何,符合 PDF 规范的 PDF 查看器也应支持所有注释类型的渲染。但是,在处理大量文档时,手动添加注释的过程会变得繁琐,因此编程 API 是一种可行的解决方案。我们将进一步讨论如何使用 Aspose.PDF Cloud SDK for Java 向 PDF 文档添加注释。
SDK 的安装
Aspose.PDF Cloud SDK for Java 是一个编程 API,它使 Java 程序员能够创建、操作以及将现有 PDF 文档转换为其他 支持的文档格式。Cloud SDK 可通过 Maven 和 GitHub 下载。现在,在您的 pom.xml 文件中添加以下详细信息,以便在您的 Maven 构建项目中下载并使用 Aspose.Pdf.jar。
<repositories>
<repository>
<id>aspose-cloud</id>
<name>artifact.aspose-cloud-releases</name>
<url>https://artifact.aspose.cloud/repo</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-pdf-cloud</artifactId>
<version>21.1.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
欲了解更多信息,请访问如何安装 Aspose.Cloud SDKs。
此外,请注意,为了确保用户隐私和数据完整性,我们所有的 API 仅供授权人员访问。因此,您需要首先访问 Aspose.Cloud 仪表板,如果您有 GitHub 或 Google 帐户,只需注册即可。否则,单击 创建新帐户 按钮并提供所需信息。现在使用凭据登录仪表板,从仪表板展开应用程序部分,向下滚动到客户端凭据部分以查看客户端 ID 和客户端密钥详细信息。
使用 Java 删除文本
有时我们需要将文档中的某些内容标记为过时,但又不将其从文档中删除。删除线(又称 strikeout)用中间有一条水平线的单词表示。它表示文本是错误的或过时的,并且最近被删除或标记为过时。我们可以使用 strikethroughSettings 属性设置删除线注释的设置。strikethroughSettings 属性用于设置删除线注释的颜色、不透明度、作者、主题、modifiedDate 和 isLocked 属性。
// 从 https://dashboard.aspose.cloud/ 获取 ClientID 和 ClientSecret
String clientId = "29ac1517-753f-4303-b755-7185e35cf939";
String clientSecret = "c537caf71eafc8a75a5ee7813b703276";
// createPdfApi 实例
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
// 输入PDF文档
String sourcePDF = "PdfWithTable.pdf";
int pageNumber = 1;
// 创建注释的矩形区域
Rectangle rect = new Rectangle()
.LLX(200.)
.LLY(380.)
.URX(250.)
.URY(375.);
List<AnnotationFlags> flags = new ArrayList<>();
flags.add(AnnotationFlags.DEFAULT);
List<Point> points = new ArrayList<>();
points.add(new Point().X(132.).Y(380.)); // Top-Left edge of the Strike Through line
points.add(new Point().X(95.).Y(10.)); // Top-Right edge of the strike through line
points.add(new Point().X(130.).Y(25.));
points.add(new Point().X(130.).Y(10.));
StrikeOutAnnotation annotation = new StrikeOutAnnotation();
annotation.setName("Name");
annotation.setRect(rect);
annotation.setFlags(flags);
annotation.setHorizontalAlignment(HorizontalAlignment.CENTER);
annotation.setRichText("Rich Text");
annotation.setSubject("Subj");
annotation.setZindex(1);
annotation.setTitle("Title");
annotation.setQuadPoints(points);
annotation.setModified("05/22/2021 00:00:00.000 AM");
List<StrikeOutAnnotation> annotations = new ArrayList<>();
annotations.add(annotation);
AsposeResponse response = pdfApi.postPageStrikeOutAnnotations(sourcePDF, pageNumber, annotations, null, null);
assertEquals(200, (int)response.getCode());
添加高亮注释
突出显示 PDF 中的内容至关重要,因为它使我们能够将注意力吸引到文档中的重要信息上。突出显示之所以有效,是因为它首先要求读者挑选出重要部分,然后提供一种有效的方法来稍后查看该信息。我们的云 API 提供了突出显示 PDF 文档中内容的功能。下面给出了在 PDF 文件中添加突出显示注释的步骤。
- 首先,创建 PdfApi 的实例,同时提供 ClientSecret 和 ClientId 详细信息。
- 我们创建一个 File 实例来从本地系统加载 PDF 文件,然后调用 PdfApi 类的 uploadFile(…) 方法将文档上传到云存储。
- 现在创建一个 Rectangle 类的实例来指定可以添加注释的矩形区域。
- 然后创建一个 Point 类型的 ArrayList 来保存有关绘制 HighlightAnnotation 的点的信息。
- 创建 HighlightAnnotation 类的对象并设置名称、矩形区域、主题、标题、四点、注释修改日期。
- 下一步是创建一个 HighlightAnnotation 类型的 List,并将上面创建的 HighlightAnnotation 对象添加到此列表中。
- 最后,调用 PdfApi 类的 postPageHighlightAnnotations(…) 方法并传递源 PDF、页码和注释列表作为参数。

图 1:- 突出显示 PDF 文件中的注释。
您可以从以下链接下载上述示例中使用的示例文件
如何添加线注释
与添加删除线和高亮注释类似,API 还允许您在 PDF 文档中添加线注释。我们有一个名为 LineAnnotation 的类来实现此要求。下面给出了有关如何满足此要求的更多详细信息。
- 首先,创建 PdfApi 的实例,同时提供 ClientSecret 和 ClientId 详细信息。
- 或者,我们创建一个 File 实例来从本地系统加载 PDF 文件,然后调用 PdfApi 类的 uploadFile(…) 方法将文档上传到云存储。如果文件已经在云存储上可用,我们就可以使用它。
- 其余对象初始化属性与上面提到的 HighlithAnnotation 相同,只是我们需要创建 LineAnnotation 类的对象,并使用 setStarting(…) 和 setEnding(…) 方法设置线的起点和终点。
在 PDF 中添加圆圈注释
圆形注释在 PDF 文档中也非常常用,API 很好地支持这种注释类型。要添加圆形注释,请尝试使用 CircleAnnotation 类。下面指定的代码可用于满足此要求。
// 从 https://dashboard.aspose.cloud/ 获取 ClientID 和 ClientSecret
String clientId = "7042694c-5251-4aba-83c9-e81e7518724f";
String clientSecret = "db246d4742e8cd22e7266c9391992689";
// createPdfApi 实例
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
// 输入PDF文档
String sourcePDF = "PdfWithTable.pdf";
// 从本地系统加载文件
File file = new File("/Users/nayyershahbaz/Downloads/" + sourcePDF);
// 将文件上传至云存储
FilesUploadResult uploadResponse = pdfApi.uploadFile(sourcePDF, file, null);
// 添加注释的页码
int pageNumber = 1;
// 创建注释的矩形区域
Rectangle rect = new Rectangle()
.LLX(100.)
.LLY(700.)
.URX(300.)
.URY(500.);
// 创建 AnnotationFlags 类型的 List 对象
List<AnnotationFlags> flags = new ArrayList<>();
flags.add(AnnotationFlags.DEFAULT);
// 创建突出显示注释对象
CircleAnnotation annotation = new CircleAnnotation();
annotation.setName("Name");
annotation.setRect(rect);
annotation.setFlags(flags);
annotation.setRichText("Rich Text");
annotation.setSubject("Subj");
annotation.setTitle("Title");
// 为 staleblue 创建颜色实例
Color color = new Color();
color.setR(0xC7);
color.setG(0xE2);
color.setB(0x6f);
// 设置注释颜色
annotation.interiorColor(color);
// 设置注释修改日期
annotation.setModified("05/22/2021 00:00:00.000 AM");
// 创建突出显示注释的列表实例
List<CircleAnnotation> annotations = new ArrayList<>();
// 将 CircleAnnotation 对象添加到 Circle Annotations 列表
annotations.add(annotation);
// 调用 API 方法为 PDF 文件添加圆形注释
AsposeResponse response = pdfApi.postPageCircleAnnotations(sourcePDF, pageNumber, annotations, null, null);

图 2:PDF 文件中的圆圈注释。
输入的 PDF 文档和结果 PDF(如上所示)可以从以下链接下载:
快速提示
使用我们的免费在线 PDF 注释应用程序,一键删除 PDF 中的所有注释。
结论
在本博客中,我们讨论了 Aspose.PDF Cloud SDK for Java 目前支持的各种注释类型。除了注释之外,API 还支持大量与 PDF 格式相关的其他令人兴奋的功能。有关更多信息,我们建议您进一步探索 开发人员指南。
请注意,我们始终致力于以最佳方式为客户提供服务,并接受他们的反馈和建议。因此,如果您在使用 API 时遇到任何问题或有任何相关疑问,请随时通过我们的 免费支持论坛 与我们联系。
相关文章
我们强烈建议您访问以下链接以了解更多信息: