여러 첨부 파일과 다른 파일 버전이 포함된 긴 이메일 스레드에서 문서 내용과 피드백에 대해 논의하던 때가 있었습니다. 이제 주석을 사용하여 문서에 메시지와 답장을 표시하고 보낼 수 있습니다. 이 기사에서는 애플리케이션을 사용하여 Java로 PDF 문서에 프로그래밍 방식으로 주석을 추가하는 방법을 배웁니다. 또한 동일한 Java API를 사용하여 PDF 파일에서 주석을 제거하는 방법을 살펴봅니다.

아래에서 간략하게 논의된 주제는 다음과 같습니다.

PDF 주석자 Java API

Java 애플리케이션 내에서 문서 및 이미지의 주석을 처리하기 위해 GroupDocs는 GroupDocs.Annotation for Java를 제공합니다. API를 사용하여 워드 프로세싱 문서, 스프레드시트, 프레젠테이션, 이미지, 이메일 메시지, Visio 에서 주석을 추가, 제거 및 추출할 수 있습니다. 도면, 일부 AutoCAD, DICOM과 같은 디지털 이미징 형식. 또한 API를 통해 PDF 파일에 주석을 추가할 수 있습니다. 주석에 대해 지원되는 문서 형식의 긴 목록에 대해 알기 위해 문서를 볼 수 있습니다.

다운로드 및 구성

다운로드에서 주석 라이브러리를 얻거나 Maven 기반 Java 애플리케이션에 다음 pom.xml 구성을 추가하여 이 기사의 예제와 GitHub에서 사용할 수 있는 더 많은 예제를 시도하십시오. 자세한 내용은 API 참조를 참조하십시오.

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-annotation</artifactId>
        <version>20.2</version> 
</dependency>

Java에서 PDF에 주석 추가

PDF 문서에 다양한 종류의 주석을 추가하기 위해 빠르게 이동해 보겠습니다. 주석에는 다양한 유형이 있으므로 이 기사에서 모두 다루지 않을 수 있습니다. 나는 그것들을 언급할 것이고, 당신은 각 주석에 대해 개별적으로 배울 수 있습니다.

  • 면적/사각형 주석

  • 화살표

  • 거리

  • 타원

  • 하이라이트

  • 링크

  • 가리키다

  • 폴리라인

  • 교체

  • 리소스 수정

  • 삼진

  • 텍스트 필드

  • 텍스트 수정

  • 밑줄

  • 워터마크

PDF 문서에 이들 중 일부를 추가해 보겠습니다.

Java를 사용하여 PDF에 화살표 주석 추가

다음은 PDF 문서에 화살표 주석을 추가하는 단계입니다.

화살표 주석
  • Annotator 클래스를 사용하여 PDF 문서를 로드합니다.
  • ArrowAnnotation 클래스를 사용하여 화살표 주석을 초기화합니다.
  • ArrowAnnotation의 setBox 메소드를 사용하여 화살표의 위치와 크기를 설정합니다.
  • 생성된 화살표 주석을 Annotator 객체에 추가합니다.
  • 저장 방법을 사용하여 경로를 제공하여 주석이 달린 PDF를 저장합니다.

다음 코드 샘플은 Java를 사용하여 PDF 문서에 화살표 주석을 추가하는 방법을 보여줍니다.

// Java를 사용하여 PDF에 화살표 주석 추가
final Annotator annotator = new Annotator("document.pdf");
ArrowAnnotation arrow = new ArrowAnnotation();
arrow.setBox(new Rectangle(100, 100, 100, 100)); // (x, y, width, height)
annotator.add(arrow);
annotator.save("path/annotated-with-arrow.pdf");

Java를 사용하여 PDF에 직사각형 또는 영역 주석 삽입

문서에 주석을 추가하는 동안 주석을 사용자 정의할 수 있습니다. 다음은 약간의 사용자 정의로 PDF 문서에 직사각형 또는 영역 주석을 추가하는 단계입니다. Arrow 주석을 추가하는 것과 유사하지만 ArrowAnnotation 대신 AreaAnnotation 클래스를 사용합니다.

  • Annotator 클래스를 사용하여 PDF 문서를 로드합니다.
  • AreaAnnotation 클래스를 사용하여 사각형 주석을 초기화합니다.
  • AreaAnnotation의 setBox 메소드를 사용하여 사각형의 위치와 크기를 설정합니다.
  • 색상, 배경, 불투명도, 스타일, 펜 너비 또는 메시지시간과 같은 다른 속성 설정 .
  • 생성된 사각형 주석을 Annotator 객체에 추가합니다.
  • 저장 방법을 사용하여 경로를 제공하여 주석이 달린 PDF를 저장합니다.
직사각형 또는 영역 주석

다음 코드 샘플은 Java를 사용하여 PDF 문서에 직사각형/영역 주석을 추가하는 방법을 보여줍니다.

// Java를 사용하여 PDF에 영역 주석 또는 직사각형 주석 추가
final Annotator annotator = new Annotator("document.pdf");
AreaAnnotation area = new AreaAnnotation();
area.setBox(new Rectangle(50, 100, 500, 100));
area.setCreatedOn(Calendar.getInstance().getTime());
area.setMessage("Annotate documents and images.");
area.setOpacity(0.7);
area.setPenColor(-13076963);
area.setPenStyle(PenStyle.Dash);
area.setPenWidth((byte) 3);
// 문서에 추가
annotator.add(area);
annotator.save("path/annotated-with-rectangle.pdf");

Java를 사용하여 PDF에 타원형 또는 타원 주석 추가

다음은 PDF 문서에 타원형 주석 또는 타원 주석을 추가하는 단계입니다.

타원 또는 타원형 주석
  • Annotator 클래스를 사용하여 PDF 문서를 로드합니다.
  • EllipseAnnotation 클래스를 사용하여 타원 주석을 초기화합니다.
  • EllipseAnnotation의 setBox 메소드를 이용하여 타원의 위치와 크기를 설정합니다.
  • 생성된 타원 주석을 Annotator 개체에 추가합니다.
  • 저장 방법을 사용하여 경로를 제공하여 주석이 달린 PDF를 저장합니다.

다음 코드 샘플은 Java를 사용하여 PDF 문서에 타원형 또는 타원 주석을 추가하는 방법을 보여줍니다.

// Java를 사용하여 PDF에 타원형 또는 타원 주석 추가
final Annotator annotator = new Annotator("document.pdf");
// 타원형 또는 타원 주석
EllipseAnnotation ellipse = new EllipseAnnotation();
ellipse.setBox(new Rectangle(275, 505, 300, 80));
// 문서에 추가
annotator.add(area);
annotator.save("path/annotated-with-ellipse.pdf");

Java를 사용하여 PDF에 거리 주석 삽입

거리 주석

거리 주석을 추가하여 두 점 사이의 거리를 표시할 수도 있습니다. 다음은 PDF 문서에 거리 주석을 추가하는 단계입니다.

  • Annotator 클래스를 사용하여 PDF 문서를 로드합니다.
  • DistanceAnnotation 클래스를 사용하여 거리 주석을 초기화합니다.
  • DistanceAnnotation의 setBox 메소드를 사용하여 주석의 크기와 위치를 설정합니다.
  • 생성된 거리 주석을 Annotator 객체에 추가합니다.
  • save 메소드를 사용하여 경로를 제공하여 주석이 달린 PDF를 저장합니다.

다음 코드 샘플은 Java를 사용하여 PDF 문서에 거리 주석을 추가하는 방법을 보여줍니다.

// Java를 사용한 거리 주석
final Annotator annotator = new Annotator("document.pdf");
// 거리 주석
DistanceAnnotation distance = new DistanceAnnotation();
distance.setBox(new Rectangle(775, 235, 0, 150));
// 문서에 추가
annotator.add(area);
annotator.save("path/annotated-with-distance.pdf");

완전한 코드

요약하자면, 여기에 언급된 Java 코드를 사용하여 응답이 포함된 메세지 및 추가된 모든 주석을 표시하는 출력이 있는 Java 코드가 있습니다.

PDF에 주석 추가

아래의 다음 코드는 PDF 파일에 화살표, 직사각형, 타원, 거리 주석, 메시지 및 회신을 추가합니다.

// Java를 사용하여 PDF에 여러 주석 추가
// Java를 사용하여 메시지 및 응답이 있는 PDF에 화살표, 영역, 타원형(타원), 거리 주석 추가
final Annotator annotator = new Annotator(Constants.INPUT);
// 응답 설정
Reply reply1 = new Reply();
reply1.setComment("Please look in to these issues.");
reply1.setRepliedOn(Calendar.getInstance().getTime());

Reply reply2 = new Reply();
reply2.setComment("Change Description");
reply2.setRepliedOn(Calendar.getInstance().getTime());

Reply reply3 = new Reply();
reply2.setComment("On-Premises APIs");
reply2.setRepliedOn(Calendar.getInstance().getTime());

Reply reply4 = new Reply();
reply2.setComment("Add images as well.");
reply2.setRepliedOn(Calendar.getInstance().getTime());

java.util.List<Reply> replies = new ArrayList<Reply>();
replies.add(reply1);
replies.add(reply2);
replies.add(reply3);
replies.add(reply4);
// 화살표 주석 =================================
ArrowAnnotation arrow = new ArrowAnnotation();
arrow.setBox(new Rectangle(560, 250, 60, -60));
arrow.setCreatedOn(Calendar.getInstance().getTime());
arrow.setMessage("This image is little upwards.");
arrow.setOpacity(0.7);
arrow.setPenColor(-3407872);
arrow.setPenWidth((byte) 2);
arrow.setReplies(replies.subList(0, 1));
// 영역 주석 ===================================
AreaAnnotation area = new AreaAnnotation();
area.setBox(new Rectangle(50, 100, 500, 100));
area.setCreatedOn(Calendar.getInstance().getTime());
area.setMessage("Annotate documents and images.");
area.setOpacity(0.7);
area.setPenColor(-13076963);
area.setPenStyle(PenStyle.Dash);
area.setPenWidth((byte) 3);
area.setReplies(replies.subList(1, 2));
// 타원형 또는 타원 주석 =========================
EllipseAnnotation ellipse = new EllipseAnnotation();
ellipse.setBox(new Rectangle(275, 505, 300, 80));
ellipse.setCreatedOn(Calendar.getInstance().getTime());
ellipse.setMessage("Shows all the available Annotation APIs.");
ellipse.setOpacity(0.7);
ellipse.setPenColor(-16034924);
ellipse.setPenStyle(PenStyle.Dot);
ellipse.setPenWidth((byte) 3);
ellipse.setReplies(replies.subList(2, 3));
// 거리 주석 ================================
DistanceAnnotation distance = new DistanceAnnotation();
distance.setBox(new Rectangle(775, 235, 0, 150));
distance.setCreatedOn(Calendar.getInstance().getTime());
distance.setMessage("This is the heading area");
distance.setOpacity(0.7);
distance.setPenColor(-21197);
distance.setPenStyle(PenStyle.Solid);
distance.setPenWidth((byte) 1);
distance.setReplies(replies.subList(3, 4));
// 주석 추가 =================================
annotator.add(arrow);
annotator.add(area);
annotator.add(ellipse);
annotator.add(distance);
// 주석이 달린 PDF 저장 ================================
annotator.save(outputPath);
annotator.dispose();

Java의 PDF에서 주석 제거

다음 단계는 Java의 PDF 파일에서 모든 주석을 제거하는 방법을 보여줍니다.

  • Annotator 클래스를 사용하여 PDF 문서를 로드합니다.
  • SaveOptions 클래스를 사용하여 저장 옵션을 초기화합니다.
  • 주석 유형을 없음으로 설정합니다.
  • save 메소드를 사용하여 경로를 제공하여 모든 주석이 제거된 PDF 파일을 저장합니다.

다음 Java 코드는 PDF 파일에서 주석을 제거합니다.

// Java를 사용하여 PDF 문서에서 모든 주석 제거
final Annotator annotator = new Annotator("document.pdf");
SaveOptions saveOptions = new SaveOptions();
saveOptions.setAnnotationTypes(AnnotationType.None);
// 더 이상 주석이 포함되지 않은 PDF를 저장합니다.
annotator.save("path/annotations-removed.pdf", saveOptions);
annotator.dispose();

결론

간단히 말해서 Java 응용 프로그램 내에서 PDF에 주석을 추가하는 방법을 배웠습니다. 또한 PDF 파일에서 모든 주석을 제거하는 방법을 살펴보았습니다. 이제 자신만의 문서 어노테이터 Java 애플리케이션을 구축할 수 있습니다. Java용 GroupDocs.Annotation을 사용하여 다양한 유형의 주석을 지원할 수 있습니다.

자세한 내용, 옵션 및 예제를 보려면 문서GitHub 저장소를 방문하십시오. 추가 문의 사항은 포럼의 지원팀에 문의하세요.

또한보십시오