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。請確保正確設定了輸入和輸出檔案路徑。