PDF 注释

PDF 页面内的内容很难编辑,但 PDF 规范定义了一套完整的对象,可以将其添加到 PDF 页面中而无需更改页面内容。这些对象称为注释,其用途包括标记页面内容和实现表单等交互功能。

大多数 PDF 查看器允许创建和编辑各种注释类型,例如文本突出显示、注释、线条或形状,并且无论创建的注释类型如何,符合 PDF 规范的 PDF 查看器也应支持所有注释类型的渲染。但是,在处理大量文档时,手动添加注释的过程会变得繁琐,因此编程 API 是一种可行的解决方案。我们将进一步讨论如何使用 Aspose.PDF Cloud SDK for JavaPDF 文档添加注释。

SDK 的安装

Aspose.PDF Cloud SDK for Java 是一个编程 API,它使 Java 程序员能够创建、操作以及将现有 PDF 文档转换为其他 支持的文档格式。Cloud SDK 可通过 MavenGitHub 下载。现在,在您的 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);
PDF 中的圆圈注释

图 2:PDF 文件中的圆圈注释。

输入的 PDF 文档和结果 PDF(如上所示)可以从以下链接下载:

快速提示

使用我们的免费在线 PDF 注释应用程序,一键删除 PDF 中的所有注释。

结论

在本博客中,我们讨论了 Aspose.PDF Cloud SDK for Java 目前支持的各种注释类型。除了注释之外,API 还支持大量与 PDF 格式相关的其他令人兴奋的功能。有关更多信息,我们建议您进一步探索 开发人员指南

请注意,我们始终致力于以最佳方式为客户提供服务,并接受他们的反馈和建议。因此,如果您在使用 API 时遇到任何问题或有任何相关疑问,请随时通过我们的 免费支持论坛 与我们联系。

相关文章

我们强烈建议您访问以下链接以了解更多信息: