使用 GroupDocs.Annotation for Java 保存已註釋的 PDF

增強 Java 應用程式的文件註釋功能是提升協作、合規性與使用者體驗的強大方式。在本指南中,您將學習 如何保存已註釋的 PDF 檔案,從設定 Maven 相依性、加入多個註釋到遵循 Java 註釋最佳實踐。讓我們一步步說明,讓您能自信地將此功能整合到專案中。

快速回答

  • GroupDocs.Annotation 的主要目的為何?
    以程式方式在 Java 應用程式中建立、編輯及 保存已註釋的 PDF 文件。
  • 我需要哪個 Maven 套件?
    com.groupdocs:groupdocs-annotation (see the maven dependency groupdocs section)。
  • 我可以一次加入多個註釋嗎?
    是的——您可以在單一次操作中 加入多個註釋
  • 如何初始化 annotator?
    使用教學中示範的 initialize annotator java 模式。
  • 關鍵的最佳實踐提示是什麼?
    請遵循 annotation best practices java 清單,以進行記憶體管理與效能優化。

什麼是「保存已註釋的 PDF」?

保存已註釋的 PDF 表示將所有視覺註記——如標記、評論、圖形及其他標記——永久寫入 PDF 檔案,使任何開啟文件的人都能看到這些變更。GroupDocs.Annotation 提供簡易的 API,以程式方式執行此任務。

為何使用 GroupDocs.Annotation for Java?

  • 跨平台支援 – 可在任何執行 Java 的作業系統上運作。
  • 豐富的註釋類型 – 從簡單的標記到如橢圓形等複雜圖形。
  • 不需外部 PDF 編輯器 – 所有操作皆在您的 Java 程式碼內完成。
  • 企業級可擴充性 – 適用於法律、教育與技術文件工作流程。

前置條件

  • Java SDK(JDK 8 或更新版本)已安裝於您的機器上。
  • Maven 用於相依性管理。
  • IntelliJ IDEAEclipse 等 IDE。
  • 基本的 Java 程式設計知識。

Maven 相依性 GroupDocs

將 GroupDocs 儲存庫與註釋函式庫加入您的 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>

取得授權

  1. 免費試用: 下載試用版以測試 GroupDocs.Annotation。
  2. 臨時授權: 取得臨時授權,以在評估期間完整使用功能。
  3. 購買: 獲得正式授權以供正式環境使用。

初始化 Annotator Java

第一步是使用您想要處理的文件 initialize annotator java。以下為基本的初始化範本:

import com.groupdocs.annotation.Annotator;

public class Feature1 {
    public void loadAnnotator(String fileName) {
        try (final Annotator annotator = new Annotator(fileName)) {
            // Ready to use!
        }
    }
}

功能 1:載入與初始化 Annotator

此功能示範如何以文件路徑初始化 Annotator,為您的 Java 應用程式設定註釋任務環境。

import com.groupdocs.annotation.Annotator;

public class Feature1 {
    public void loadAnnotator(String fileName) {
        try (final Annotator annotator = new Annotator(fileName)) {
            // Annotator initialized and ready.
        }
    }
}

建立註釋

功能 2:建立區域註釋

區域註釋可讓您標示矩形區域。請依照以下步驟建立:

import com.groupdocs.annotation.models.Rectangle;
import com.groupdocs.annotation.models.annotationmodels.AreaAnnotation;

public class Feature2 {
    public AreaAnnotation createAreaAnnotation() {
        AreaAnnotation area = new AreaAnnotation();
        area.setBox(new Rectangle(100, 100, 100, 100));
        area.setBackgroundColor(65535);
        area.setPageNumber(1);

        return area;
    }
}

功能 3:建立橢圓形註釋

橢圓形註釋非常適合圓形或橢圓形的標示。

import com.groupdocs.annotation.models.Rectangle;
import com.groupdocs.annotation.models.annotationmodels.EllipseAnnotation;

public class Feature3 {
    public EllipseAnnotation createEllipseAnnotation() {
        EllipseAnnotation ellipse = new EllipseAnnotation();
        ellipse.setBox(new Rectangle(100, 100, 100, 100));
        ellipse.setBackgroundColor(123456);
        ellipse.setPageNumber(2);

        return ellipse;
    }
}

新增多筆註釋

您可以在一次呼叫中 加入多筆註釋,此方式可提升效能並讓程式碼更整潔。

import com.groupdocs.annotation.Annotator;
import java.util.ArrayList;
import java.util.List;
import com.groupdocs.annotation.models.AnnotationBase;
import com.groupdocs.annotation.models.annotationmodels.AreaAnnotation;
import com.groupdocs.annotation.models.annotationmodels.EllipseAnnotation;

public class Feature4 {
    public void addAnnotations(Annotator annotator) {
        AreaAnnotation area = new AreaAnnotation();
        area.setBox(new Rectangle(100, 100, 100, 100));
        area.setBackgroundColor(65535);
        area.setPageNumber(1);

        EllipseAnnotation ellipse = new EllipseAnnotation();
        ellipse.setBox(new Rectangle(100, 100, 100, 100));
        ellipse.setBackgroundColor(123456);
        ellipse.setPageNumber(2);

        List<AnnotationBase> annotations = new ArrayList<>();
        annotations.add(area);
        annotations.add(ellipse);

        annotator.add(annotations);
    }
}

儲存文件 – 如何保存已註釋的 PDF

現在已完成註釋,您將 保存已註釋的 PDF,僅保留所需的註釋類型。

public class Feature5 {
    public String getOutputPath(String fileName) {
        return "YOUR_OUTPUT_DIRECTORY" + "/filtered_output.pdf";
    public void saveAnnotatedDocument(Annotator annotator, String outputPath) {
        SaveOptions saveOptions = new SaveOptions();
        saveOptions.setAnnotationTypes(AnnotationType.ELLIPSE);

        annotator.save(outputPath, saveOptions);
    }
}

註釋最佳實踐 Java

  • 使用 try‑with‑resources 以自動關閉 Annotator 並釋放記憶體。
  • 批次加入註釋(如 Feature 4 所示)以減少 I/O 負擔。
  • SaveOptions 中僅指定所需的註釋類型,以保持檔案大小較小。
  • 在儲存後釋放大型文件 的記憶體,以避免記憶體洩漏。

實務應用

  • 法律文件審閱: 為律師標示條款並附加評論。
  • 教育資源: 為教科書加註,以供學習小組使用。
  • 技術手冊: 在工程圖上標註說明與警示。

效能考量

  • 限制在極大型 PDF 上同時進行的註釋數量。
  • 使用建議的 annotation best practices java 以有效管理記憶體。
  • 若發現效能下降,請使用 Java Flight Recorder 進行效能分析。

常見問題與解決方案

問題解決方案
OutOfMemoryError 在載入大型 PDF 時發生以串流模式載入文件或增加 JVM 堆積大小。
儲存後註釋未顯示確保 SaveOptions 包含正確的 AnnotationType
授權錯誤確認試用版或正式授權檔案已正確引用。

常見問答

Q: 我可以在形狀之外加入文字評論嗎?
A: 可以,GroupDocs.Annotation 支援 TextAnnotationCommentAnnotation 類型——只需實例化相應的模型並將其加入清單。

Q: 是否可以編輯已存在的註釋?
A: 當然可以。透過其 ID 取得註釋,修改屬性後呼叫 annotator.update(updatedAnnotation)

Q: 如何移除不再需要的註釋?
A: 使用 annotator.delete(annotationId) 刪除特定註釋,或使用 annotator.clear(pageNumber) 清除該頁面的所有註釋。

Q: 此函式庫能處理受密碼保護的 PDF 嗎?
A: 能。建立 Annotator 實例時提供密碼,例如 new Annotator(filePath, password)

Q: 需要哪個版本的 Java?
A: 此函式庫相容於 Java 8 及以上版本;我們建議使用最新的 LTS 版以獲得最佳效能。

結論

您現在已擁有一套完整、端對端的 保存已註釋的 PDF 解決方案,使用 GroupDocs.Annotation for Java。遵循上述步驟——設定 Maven 相依性、初始化 annotator、建立並加入多筆註釋,以及套用註釋最佳實踐,您即可為任何 Java 應用程式增添強大的文件標註功能。


最後更新: 2025-12-17
測試版本: GroupDocs.Annotation 25.2
作者: GroupDocs