使用 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 IDEA 或 Eclipse 等 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>
取得授權
- 免費試用: 下載試用版以測試 GroupDocs.Annotation。
- 臨時授權: 取得臨時授權,以在評估期間完整使用功能。
- 購買: 獲得正式授權以供正式環境使用。
初始化 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 支援 TextAnnotation 與 CommentAnnotation 類型——只需實例化相應的模型並將其加入清單。
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