Java PDF 注释:使用 GroupDocs.Annotation for Java 创建和管理注释和回复

介绍

在 PDF 文档中管理注释可能非常繁琐,尤其是在数字文档日益普及的今天。本教程将指导您使用 Java Annotator 和 GroupDocs.Annotation 来简化在文档中添加和管理注释或反馈的流程。

您将学到什么:

  • 在您的 Java 项目中初始化 GroupDocs.Annotation 库。
  • 创建用于注释管理的用户配置文件。
  • 在 PDF 文档上配置和应用区域注释。
  • 将回复附加到注释中以获得协作反馈。
  • 使用 GroupDocs.Annotation 功能高效地保存带注释的 PDF。

在我们开始之前,让我们先介绍一些先决条件,以确保安装过程顺利进行。

先决条件

所需的库和依赖项

确保您的系统已安装 Java,并安装了 IntelliJ IDEA 或 Eclipse 等 IDE,以便于开发。您还需要 Maven 作为构建工具来管理依赖项。

环境设置要求

  • 安装 Java 开发工具包 (JDK) 8 或更高版本。
  • 在您喜欢的 IDE 中设置一个 Maven 项目。

知识前提

了解 Java 编程和 PDF 注释的基本知识会有所帮助,但并非必需。我们将涵盖您入门所需的一切。

为 Java 设置 GroupDocs.Annotation

要使用 GroupDocs.Annotation for Java,请配置 Maven 以包含所需的依赖项:

Maven配置

在您的 pom.xml 文件:

<repositories>
   <repository>
      <id>repository.groupdocs.com</id>
      <name>GroupDocs Repository</name>
      <url>https://releases.groupdocs.com/annotation/java/</url>
   </repository>
</repositories>

<dependencies>
   <dependency>
      <groupId>com.groupdocs</groupId>
      <artifactId>groupdocs-annotation</artifactId>
      <version>25.2</version>
   </dependency>
</dependencies>

许可证获取步骤

GroupDocs 提供免费试用,方便您探索其功能。如果您需要长期使用,请考虑申请临时许可证;如果您的项目需要长期使用,请购买许可证。

  1. 免费试用: 下载库 GroupDocs 发布页面 并开始实验。
  2. 临时执照: 通过以下方式申请临时许可证 GroupDocs 购买页面.
  3. 购买: 如需完全访问权限,请通过 GroupDocs 购买页面.

基本初始化和设置

要在 Java 应用程序中初始化 GroupDocs.Annotation,请创建一个实例 Annotator 使用您的输入 PDF 文件:

import com.groupdocs.annotation.Annotator;

public class InitializeAnnotation {
    public static void main(String[] args) {
        String inputFile = "YOUR_DOCUMENT_DIRECTORY/input.pdf";
        final Annotator annotator = new Annotator(inputFile);
    }
}

实施指南

让我们将实施过程分解为不同的特征。

功能 1:初始化注释器

概述: 此功能通过初始化一个 Annotator 目的。

逐步实施

import com.groupdocs.annotation.Annotator;

public class Feature1 {
    public static void main(String[] args) {
        String inputFile = "YOUR_DOCUMENT_DIRECTORY/input.pdf"; // 定义输入 PDF 路径
        final Annotator annotator = new Annotator(inputFile); // 使用输入文件初始化注释器
    }
}

解释: 这一步至关重要,因为它设置您的应用程序与 GroupDocs.Annotation 交互,将指定的 PDF 文档加载到内存中。

功能 2:创建用户

概述: 创建用户配置文件可让您高效地管理注释和回复。每个用户都可以在文档中分配注释或回复。

逐步实施

import com.groupdocs.annotation.models.User;
import java.util.Calendar;

public class Feature2 {
    public static void main(String[] args) {
        User user1 = new User();
        user1.setId(1);
        user1.setName("Tom");
        user1.setEmail("somemail@mail.com");

        User user2 = new User();
        user2.setId(2);
        user2.setName("Jack");
        user2.setEmail("somebody@mail.com");

        User user3 = new User();
        user3.setId(3);
        user3.setName("Mike");
        user3.setEmail("somemike@mail.com");
    }
}

解释: 此功能设置管理注释所需的用户配置文件。每个 User 对象使用 ID、名称和电子邮件进行初始化。

功能 3:创建和配置区域注释

概述: 此步骤涉及在 PDF 文档上创建区域注释,以有效地突出显示各个部分。

逐步实施

import com.groupdocs.annotation.models.Rectangle;
import com.groupdocs.annotation.models.PenStyle;
import com.groupdocs.annotation.models.annotationmodels.AreaAnnotation;
import java.util.Calendar;

public class Feature3 {
    public static void main(String[] args) {
        AreaAnnotation area = new AreaAnnotation();
        area.setBackgroundColor(65535);
        area.setBox(new Rectangle(100, 100, 100, 100)); // 指定注释的位置和大小
        area.setCreatedOn(Calendar.getInstance().getTime());
        area.setMessage("This is an area annotation");
        area.setOpacity(0.7); // 设置不透明度
        area.setPageNumber(0);
        area.setPenColor(65535);
        area.setPenStyle(PenStyle.DOT);
        area.setPenWidth((byte) 3);
    }
}

解释: 在这里,你定义一个 AreaAnnotation 对象并配置其属性,如背景颜色、大小(Rectangle)、不透明度、画笔样式等,自定义注释的外观。

功能 4:创建注释回复

概述: 将回复附加到注释中,以便用户可以直接在注释区域内添加评论或反馈。

逐步实施

import com.groupdocs.annotation.models.Reply;
import com.groupdocs.annotation.models.User;
import java.util.ArrayList;
import java.util.Calendar;

public class Feature4 {
    public static void main(String[] args) {
        User user1 = new User();
        user1.setId(1);

        User user2 = new User();
        user2.setId(2);

        ArrayList<Reply> replies = new ArrayList<>();
        
        Reply reply1 = new Reply();
        reply1.setId(1);
        reply1.setComment("First comment");
        reply1.setRepliedOn(Calendar.getInstance().getTime());
        reply1.setUser(user1);

        Reply reply2 = new Reply();
        reply2.setId(2);
        reply2.setComment("Second comment");
        reply2.setRepliedOn(Calendar.getInstance().getTime());
        reply2.setUser(user2);

        replies.add(reply1);
        replies.add(reply2);
    }
}

解释: 此功能链接 Reply 对象注释,允许用户留下评论。每个 Reply 与用户关联并带有时间戳。

功能 5:附加回复并保存带注释的文档

概述: 注释准备好后,您可以将它们与回复一起保存,以创建协作注释的文档。

逐步实施

import com.groupdocs.annotation.Annotator;
import com.groupdocs.annotation.models.annotationmodels.AreaAnnotation;
import java.util.Arrays;

public class Feature5 {
    public static void main(String[] args) {
        Annotator annotator = new Annotator("YOUR_DOCUMENT_DIRECTORY/input.pdf"); // 使用您的 PDF 文件进行初始化
        
        AreaAnnotation area = new AreaAnnotation();
        area.setBackgroundColor(65535);
        area.setBox(new Rectangle(100, 100, 100, 100));
        area.setMessage("This is an area annotation");
        area.setOpacity(0.7);
        area.setPageNumber(0);
        area.setPenColor(65535);
        area.setPenStyle(PenStyle.DOT);
        area.setPenWidth((byte) 3);

        User user1 = new User();
        user1.setId(1);

        ArrayList<Reply> replies = new ArrayList<>();
        
        Reply reply1 = new Reply();
        reply1.setId(1);
        reply1.setComment("First comment");
        reply1.setRepliedOn(Calendar.getInstance().getTime());
        reply1.setUser(user1);

        replies.add(reply1);

        area.setReplies(replies);
        annotator.add(area);
        
        annotator.save("YOUR_DOCUMENT_DIRECTORY/output.pdf"); // 保存带注释的文档
    }
}

解释: 这最后一步演示了如何将回复附加到注释中并保存带注释的 PDF。请确保正确设置了输入和输出文件路径。