Aspose.PDF FOSS for Java은 MIT 라이선스 Java 라이브러리로, PDF 문서를 생성하고 작업하기 위해 사용됩니다. 중앙 진입점으로서 포괄적인 Document 클래스를 제공하며, 주석, 인터랙티브 폼 필드, 페이지 조작, 메타데이터 및 PDF/A 준수 검증을 완전하게 지원합니다.
이 라이브러리는 전체 PDF 사양을 포괄하는 527개의 클래스를 노출합니다: Document, Page, PageCollection을 통한 문서 구조; Annotation 계층을 통한 주석(여기에는 WidgetAnnotation, FreeTextAnnotation, HighlightAnnotation 포함); Form, ButtonField, CheckboxField, RadioButtonField을 이용한 인터랙티브 폼; BmpDevice를 통한 페이지 렌더링; 그리고 ActionRules와 ActionFixes를 통한 PDF/A 준수 검사. 암호화는 CBC 모드의 AESCipher를 통해 제공됩니다.
Aspose.PDF FOSS를 Maven 프로젝트에 추가하려면 groupId org.aspose와 artifactId aspose-pdf를 사용하십시오. 이 라이브러리는 Java 11 이상이 필요하며 완전한 MIT 라이선스를 갖추고 있습니다. 엔터프라이즈 기능 및 지원에 대해서는 Aspose.PDF for Java — Enterprise Product를 참조하십시오.
Document 클래스를 사용하여 새 PDF 문서를 생성합니다. 기존 문서는 Document(filePath) 또는 Document(stream) 생성자를 통해 액세스할 수 있습니다.PageCollection을(를) 통해 페이지를 추가, 액세스 및 수정합니다. 각 Page는 MediaBox, CropBox, 회전, 리소스 및 콘텐츠 연산자를 노출합니다.DocumentInfo 및 XmpMetadata을(를) 통해 문서 메타데이터를 읽고 씁니다.getParser(), getCatalog(), 및 getTrailer()을(를) 통해 기본 PDF 객체에 액세스합니다.getEmbeddedFiles()를 사용하여 임베디드 파일 컬렉션을 관리합니다.Document를 만들고 페이지를 채우면서 문서들을 프로그래밍으로 작성합니다.PdfFileEditor 및 Page API를 사용하여 페이지를 크기를 변경, 회전 또는 재편.Annotation 클래스는 모든 주석의 기본이며; 구체적인 유형에는 WidgetAnnotation, FreeTextAnnotation, HighlightAnnotation, 및 UnderlineAnnotation가 포함됩니다.Document.getForm()를 통해 문서 양식에 접근하여 ButtonField, CheckboxField, 및 RadioButtonField 인스턴스를 열거하거나 생성할 수 있습니다.AppearanceCharacteristics를 통해 시각적 속성을 제어합니다 — 테두리 색상, 배경, 회전 및 캡션.FormEditor 및 FormElement을 사용합니다.ActionRules 및 ActionFixes을 사용하여 장기간 보관하기 위한 문서를 확인하고 수정합니다.AESCipher로 데이터 바이트 배열을 암호화하고 해독합니다 (AESCipher.encrypt(key, data) 및 AESCipher.decrypt(key, data)).Artifact 및 ArtifactCollection API를 통해 헤더, 푸터, 워터마크 및 배경 이미지를 식별하고 조작합니다.PdfFileEditor.resizeContents() 및 ContentsResizeParameters으로 페이지 내용 레이아웃을 조정합니다.AnnotationRules 및 ActionRules을 사용하여 PDF/A 표준에 대한 주석과 행동 규칙을 확인합니다.AESCipher를 사용하십시오.Artifact 객체와 페이지 장식물을 탐지하고 관리합니다.ActionFixes 및 AnnotationFixes를 실행하여 기존 문서가 PDF/A-1b 기록보조 표준에 맞도록 합니다.새 문서를 만들고, 페이지를 추가하고, 스타일링을 통해 위젯 주석을 첨부합니다.
try (Document doc = new Document()) ```java
try (Document doc = new Document()) {
Page page = doc.getPages().add();
WidgetAnnotation w = new WidgetAnnotation(page, new Rectangle(0, 0, 100, 50));
w.getCharacteristics().setBorder(Color.fromRgb(1, 0, 0));
w.getCharacteristics().setCaption("Submit");
page.getAnnotations().add(w);
doc.save("output.pdf");
}
문서 양식에 라디오 버튼 그룹을 추가하고, 프로그래밍 방식으로 값을 선택합니다.
try (Document doc = new Document()) {
Page page = doc.getPages().add();
RadioButtonField radio = new RadioButtonField(page);
radio.setPartialName("choice");
radio.addOption("Option1", new Rectangle(50, 50, 70, 70));
radio.addOption("Option2", new Rectangle(50, 80, 70, 100));
doc.getForm().add(radio, 1);
radio.setValue("Option2");
doc.save("form.pdf");
}
기존 문서에 액세스하고 첫 페이지의 미디어 박스 크기를 읽어보십시오.
try (Document doc = new Document("input.pdf")) {
double width = doc.getPages().get(1).getMediaBox().getWidth();
double height = doc.getPages().get(1).getMediaBox().getHeight();
System.out.println("Page size: " + width + " x " + height);
}