PDF 주석

PDF 페이지 내부의 내용은 편집하기 어렵지만 PDF 사양은 페이지 내용을 변경하지 않고도 PDF 페이지에 추가할 수 있는 완전한 객체 세트를 정의합니다. 이러한 객체를 주석이라고 하며, 그 목적은 페이지 내용 마크업에서 양식과 같은 대화형 기능 구현까지 다양합니다.

대부분의 PDF 뷰어는 텍스트 강조 표시, 메모, 선 또는 모양과 같은 다양한 주석 유형을 만들고 편집할 수 있으며, 생성된 주석 유형에 관계없이 PDF 사양을 준수하는 PDF 뷰어는 모든 주석 유형에 대한 렌더링도 지원해야 합니다. 그러나 대량의 문서를 처리할 때 주석을 추가하는 수동 프로세스가 번거로워지므로 프로그래밍 API가 실행 가능한 솔루션입니다. Aspose.PDF Cloud SDK for Java를 사용하여 PDF 문서에 주석을 추가하는 방법에 대해 더 논의할 것입니다.

SDK 설치

Aspose.PDF Cloud SDK for Java는 Java 프로그래머가 기존 PDF 문서를 다른 지원되는 문서 형식으로 만들고, 조작하고, 변환할 수 있는 프로그래밍 API입니다. Cloud SDK는 MavenGitHub에서 다운로드할 수 있습니다. 이제 pom.xml 파일에 다음 세부 정보를 추가하여 Maven 빌드 프로젝트에서 Aspose.Pdf.jar를 다운로드하고 사용합니다.

<repositories>
 <repository>
        <id>aspose-cloud</id>
        <name>artifact.aspose-cloud-releases</name>
        <url>https://artifact.aspose.cloud/repo</url>
    </repository>   
</repositories>
<dependencies>
 <dependency>
        <groupId>com.aspose</groupId>
        <artifactId>aspose-pdf-cloud</artifactId>
        <version>21.1.0</version>
        <scope>compile</scope>
    </dependency>
 </dependencies>

자세한 내용은 Aspose.Cloud SDK 설치 방법을 참조하세요.

또한 사용자 개인 정보 보호 및 데이터 무결성을 보장하기 위해 모든 API는 권한이 있는 사람만 액세스할 수 있습니다. 따라서 먼저 Aspose.Cloud 대시보드를 방문해야 하며 GitHub 또는 Google 계정이 있는 경우 간단히 가입하세요. 그렇지 않은 경우 새 계정 만들기 버튼을 클릭하고 필요한 정보를 제공하세요. 이제 자격 증명을 사용하여 대시보드에 로그인하고 대시보드에서 애플리케이션 섹션을 확장하고 클라이언트 자격 증명 섹션으로 스크롤하여 클라이언트 ID 및 클라이언트 비밀 세부 정보를 확인하세요.

Java를 사용하여 텍스트 취소선 만들기

때로는 문서에서 특정 콘텐츠를 제거하지 않고도 문서 내부의 특정 콘텐츠를 구식으로 표시해야 할 때가 있습니다. 취소선(일명 취소선)은 가운데를 가로지르는 수평선이 있는 단어로 표현됩니다. 이는 텍스트가 잘못되었거나 구식이며 최근에 삭제되었거나 그렇게 표시되었음을 의미합니다. 취소선 주석의 설정은 strikethroughSettings 속성을 사용하여 지정할 수 있습니다. strikethroughSettings 속성은 취소선 주석의 color, opacity, author, subject, modifiedDate, isLocked 속성을 설정하는 데 사용됩니다.

// https://dashboard.aspose.cloud/에서 ClientID와 ClientSecret을 가져옵니다.
String clientId = "29ac1517-753f-4303-b755-7185e35cf939";
String clientSecret = "c537caf71eafc8a75a5ee7813b703276";
				
// createPdfApi 인스턴스
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
				
// PDF 문서 입력
String sourcePDF = "PdfWithTable.pdf";	        
			        
int pageNumber = 1;
// 주석을 위한 직사각형 영역 생성  
Rectangle rect = new Rectangle()
    .LLX(200.)
    .LLY(380.)
    .URX(250.)
    .URY(375.);

List<AnnotationFlags> flags = new ArrayList<>();
flags.add(AnnotationFlags.DEFAULT);

List<Point> points = new ArrayList<>();
points.add(new Point().X(132.).Y(380.)); // Top-Left edge of the Strike Through line
points.add(new Point().X(95.).Y(10.));	// Top-Right edge of the strike through line
points.add(new Point().X(130.).Y(25.));
points.add(new Point().X(130.).Y(10.));

StrikeOutAnnotation annotation = new StrikeOutAnnotation();
annotation.setName("Name");
annotation.setRect(rect);
annotation.setFlags(flags);
annotation.setHorizontalAlignment(HorizontalAlignment.CENTER);
annotation.setRichText("Rich Text");
annotation.setSubject("Subj");
annotation.setZindex(1);
annotation.setTitle("Title");
annotation.setQuadPoints(points);
annotation.setModified("05/22/2021 00:00:00.000 AM");
			        

List<StrikeOutAnnotation> annotations = new ArrayList<>();
annotations.add(annotation);

AsposeResponse response = pdfApi.postPageStrikeOutAnnotations(sourcePDF, pageNumber, annotations, null, null);
assertEquals(200, (int)response.getCode());

하이라이트 주석 추가

PDF 내부의 내용을 강조하는 것은 문서 내의 중요한 정보에 주의를 끌 수 있기 때문에 필수적입니다. 강조는 독자에게 먼저 중요한 부분을 골라내도록 요청한 다음 나중에 해당 정보를 검토할 수 있는 효과적인 방법을 제공하기 때문에 효과적입니다. 당사의 클라우드 API는 PDF 문서 내부의 내용을 강조하는 기능을 제공합니다. PDF 파일에 강조 주석을 추가하는 단계는 다음과 같습니다.

  • 먼저 ClientSecret 및 ClientId 세부 정보를 제공하면서 PdfApi 인스턴스를 생성합니다.
  • 로컬 시스템에서 PDF 파일을 로드하기 위해 File 인스턴스를 생성한 다음 PdfApi 클래스의 uploadFile(…) 메서드를 호출하여 문서를 클라우드 저장소에 업로드합니다.
  • 이제 주석을 추가할 수 있는 사각형 영역을 지정하기 위해 Rectangle 클래스의 인스턴스를 생성합니다.
  • 그런 다음 HighlightAnnotation을 그리기 위한 지점에 대한 정보를 보관하기 위해 Point 유형의 ArrayList를 만듭니다.
  • HighlightAnnotation 클래스의 객체를 생성하고 이름, 사각형 영역, 주제, 제목, QuadPoints, 주석 수정 날짜를 설정합니다.
  • 다음 단계는 HighlightAnnotation 유형의 목록을 만들고 위에서 만든 HighlightAnnotation 객체를 이 목록에 추가하는 것입니다.
  • 마지막으로, PdfApi 클래스의 postPageHighlightAnnotations(…) 메서드를 호출하고 소스 PDF, 페이지 번호, 주석 목록을 인수로 전달합니다.
하이라이트 주석 미리보기

이미지 1: PDF 파일의 강조 주석.

위의 예에서 사용된 샘플 파일은 다음 링크에서 다운로드할 수 있습니다.

라인 주석을 추가하는 방법

취소선 및 강조 주석을 추가하는 것과 유사하게 API를 사용하면 PDF 문서 내에 줄 주석을 추가할 수도 있습니다. 이 요구 사항을 달성하기 위해 LineAnnotation이라는 클래스가 있습니다. 이 요구 사항을 충족하는 방법에 대한 자세한 내용은 다음과 같습니다.

  • 먼저 ClientSecret 및 ClientId 세부 정보를 제공하면서 PdfApi 인스턴스를 생성합니다.
  • 선택적으로 로컬 시스템에서 PDF 파일을 로드하기 위해 File 인스턴스를 생성한 다음 PdfApi 클래스의 uploadFile(…) 메서드를 호출하여 문서를 클라우드 스토리지에 업로드합니다. 파일이 이미 클라우드 스토리지에 있는 경우 사용할 수 있습니다.
  • 나머지 객체 초기화 속성은 HighlithAnnotation에 대해 위에서 언급한 것과 동일하지만 LineAnnotation 클래스의 객체를 생성하고 setStarting(…) 및 setEnding(…) 메서드를 사용하여 선의 시작점과 끝점을 설정해야 합니다.
// https://dashboard.aspose.cloud/에서 ClientID와 ClientSecret을 가져옵니다.
String clientId = "7042694c-5251-4aba-83c9-e81e7518724f";
String clientSecret = "db246d4742e8cd22e7266c9391992689";
				
// createPdfApi 인스턴스
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
				
// PDF 문서 입력
String sourcePDF = "PdfWithTable.pdf";	        
			    
// 로컬 시스템에서 파일을 로드합니다
File file = new File("/Users/nayyershahbaz/Downloads/" + sourcePDF);

// 파일을 클라우드 스토리지에 업로드하다
FilesUploadResult uploadResponse = pdfApi.uploadFile(sourcePDF, file, null);

// 주석이 추가될 페이지 번호				
int pageNumber = 1;

// 주석을 위한 직사각형 영역 생성  
Rectangle rect = new Rectangle()
    .LLX(100.)
    .LLY(500.)
    .URX(400.)
    .URY(510.);

// AnnotationFlags 유형의 List 객체를 생성합니다.
List<AnnotationFlags> flags = new ArrayList<>();
flags.add(AnnotationFlags.DEFAULT);

// 라인 주석 객체 생성
LineAnnotation annotation = new LineAnnotation();

annotation.setName("Name");
annotation.setRect(rect);
annotation.setFlags(flags);
annotation.setRichText("Rich Text");
annotation.setSubject("Subj");
annotation.setTitle("Title");

// 라인의 시작점을 설정하다
annotation.setStarting(new Point().X(100.).Y(100.));
// 라인의 끝점을 설정하다
annotation.setEnding(new Point().X(20.).Y(680.));

// staleblue에 대한 색상 인스턴스를 생성합니다
Color color = new Color();
color.setA(0x00);
color.setR(0x6A);
color.setG(0x5A);
color.setB(0xCD);
// 주석 색상 설정
annotation.interiorColor(color);

// 주석 수정 날짜 설정			      
annotation.setModified("05/22/2021 00:00:00.000 AM");
			        
// Line Annotations의 목록 인스턴스 생성
List<LineAnnotation> annotations = new ArrayList<>();
// LineAnnotation 객체를 Line Annotations 목록에 추가합니다.
annotations.add(annotation);

// PDF 파일에 라인 주석을 추가하기 위한 API 메서드 호출
AsposeResponse response = pdfApi.postPageLineAnnotations(sourcePDF, pageNumber, annotations, null, null);

PDF에 원형 주석 추가

원형 주석은 PDF 문서 내부에서도 일반적으로 사용되며 API는 이 주석 유형을 아주 잘 지원합니다. 원형 주석을 추가하려면 CircleAnnotation 클래스를 사용해 보세요. 지정된 아래 코드는 이 요구 사항을 충족하는 데 사용할 수 있습니다.

// https://dashboard.aspose.cloud/에서 ClientID와 ClientSecret을 가져옵니다.
String clientId = "7042694c-5251-4aba-83c9-e81e7518724f";
String clientSecret = "db246d4742e8cd22e7266c9391992689";
				
// createPdfApi 인스턴스
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
				
// PDF 문서 입력
String sourcePDF = "PdfWithTable.pdf";	        
			    
// 로컬 시스템에서 파일을 로드합니다
File file = new File("/Users/nayyershahbaz/Downloads/" + sourcePDF);

// 파일을 클라우드 스토리지에 업로드하다
FilesUploadResult uploadResponse = pdfApi.uploadFile(sourcePDF, file, null);
// 주석이 추가될 페이지 번호				
int pageNumber = 1;

// 주석을 위한 직사각형 영역 생성  
Rectangle rect = new Rectangle()
    .LLX(100.)
    .LLY(700.)
    .URX(300.)
    .URY(500.);

// AnnotationFlags 유형의 List 객체를 생성합니다.
List<AnnotationFlags> flags = new ArrayList<>();
flags.add(AnnotationFlags.DEFAULT);

// 하이라이트 주석 객체 생성
CircleAnnotation annotation = new CircleAnnotation();
annotation.setName("Name");
annotation.setRect(rect);
annotation.setFlags(flags);
annotation.setRichText("Rich Text");
annotation.setSubject("Subj");
annotation.setTitle("Title");

// staleblue에 대한 색상 인스턴스를 생성합니다
Color color = new Color();
color.setR(0xC7);
color.setG(0xE2);
color.setB(0x6f);
// 주석 색상 설정
annotation.interiorColor(color);

// 주석 수정 날짜 설정			      
annotation.setModified("05/22/2021 00:00:00.000 AM");
			        
// 하이라이트 주석의 목록 인스턴스 생성
List<CircleAnnotation> annotations = new ArrayList<>();

// Circle Annotation 객체를 Circle Annotations 목록에 추가합니다.
annotations.add(annotation);

// PDF 파일에 Circle Annotation을 추가하기 위한 API 메서드 호출
AsposeResponse response = pdfApi.postPageCircleAnnotations(sourcePDF, pageNumber, annotations, null, null);
PDF에서 원형 주석

이미지 2: PDF 파일의 원형 주석.

위에 표시된 입력 PDF 문서와 결과 PDF는 다음 링크에서 다운로드할 수 있습니다.

빠른 팁

무료 온라인 PDF 주석 앱을 사용하면 한 번의 클릭으로 PDF의 모든 주석을 제거할 수 있습니다.

결론

이 블로그에서는 현재 Aspose.PDF Cloud SDK for Java에서 지원하는 다양한 Annotations 유형에 대해 설명했습니다. Annotations 외에도 API는 PDF 형식과 관련된 다양한 다른 흥미로운 기능을 지원합니다. 자세한 내용은 개발자 가이드를 추가로 탐색하는 것이 좋습니다.

저희는 항상 고객에게 최상의 방식으로 서비스를 제공하고 피드백과 제안을 인정하기 위해 노력하고 있음을 알려드립니다. 따라서 API를 사용하는 동안 문제가 발생하거나 관련 질문이 있는 경우 무료 지원 포럼을 통해 언제든지 문의해 주십시오.

관련기사

자세한 내용을 알아보려면 다음 링크를 방문해 보세요.