GroupDocs.Annotation for Java를 사용하여 PDF에 주석 달기

빠른 답변

  • GroupDocs.Annotation의 주요 목적은 무엇인가요?
    Java 애플리케이션에서 프로그래밍 방식으로 PDF에 주석을 생성, 편집, 그리고 저장하기 위해 사용됩니다.
  • 어떤 Maven 아티팩트가 필요합니까?
    com.groupdocs:groupdocs-annotation (Maven dependency 섹션을 참고하세요).
  • 한 번에 여러 주석을 추가할 수 있나요?
    예 – 한 번의 호출로 여러 주석을 추가할 수 있습니다.
  • Annotator를 어떻게 초기화합니까?
    튜토리얼에 표시된 initialize annotator 패턴을 사용합니다.
  • 핵심 베스트 프랙티스 팁은 무엇인가요?
    메모리 관리와 성능을 위해 annotation best practices 체크리스트를 따르세요.

“PDF에 주석 달기”란?

PDF에 주석을 다는 것은 하이라이트, 댓글, 도형 및 기타 마크업과 같은 시각적 메모를 파일에 직접 영구 저장하여 문서를 여는 모든 사람이 변경 사항을 볼 수 있게 하는 것을 의미합니다. GroupDocs.Annotation은 이 작업을 프로그래밍 방식으로 수행할 수 있는 간단한 API를 제공합니다.

Java용 GroupDocs.Annotation을 사용하는 이유

  • 크로스‑플랫폼 지원 – Java가 실행되는 모든 OS에서 작동합니다.
  • 다양한 주석 유형 – 간단한 하이라이트부터 타원과 같은 복잡한 도형까지 지원합니다.
  • 외부 PDF 편집기 불필요 – 모든 작업이 Java 코드 내부에서 이루어집니다.
  • 엔터프라이즈 수준 확장성 – 법률, 교육, 기술 문서 워크플로에 적합합니다.

사전 요구 사항

  • Java SDK (JDK 8 이상) 가 설치되어 있어야 합니다.
  • Maven 으로 의존성을 관리합니다.
  • IntelliJ IDEA 또는 Eclipse 와 같은 IDE가 필요합니다.
  • 기본적인 Java 프로그래밍 지식이 있어야 합니다.

Maven dependency GroupDocs

pom.xml에 GroupDocs 저장소와 주석 라이브러리를 추가합니다:

<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. 구매: 프로덕션 사용을 위해 정식 라이선스를 구매합니다.

Java에서 Annotator 초기화

첫 번째 단계는 작업할 문서와 함께 annotator를 초기화하는 것입니다. 아래는 기본 초기화 패턴입니다:

import com.groupdocs.annotation.Annotator;

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

Feature 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.
        }
    }
}

주석 만들기

Feature 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;
    }
}

Feature 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 Flight Recorder 로 애플리케이션을 프로파일링합니다.

일반적인 문제와 해결책

IssueSolution
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 버전을 사용하는 것을 권장합니다.

결론

이제 GroupDocs.Annotation for Java 를 사용해 PDF에 주석을 다는 전체적인 엔드‑투‑엔드 솔루션을 갖추었습니다. Maven 의존성 설정, Annotator 초기화, 주석 생성 및 다중 주석 추가, 그리고 주석 베스트 프랙티스를 적용하는 단계들을 따라 하면 어떤 Java 애플리케이션에도 강력한 문서 마크업 기능을 손쉽게 통합할 수 있습니다.


Last Updated: 2026-03-24
Tested With: GroupDocs.Annotation 25.2
Author: GroupDocs