Aspose.PDF FOSS for Java은 PDF 문서를 생성하고 작업하기 위한 MIT 라이선스 Java 라이브러리입니다. 중앙 진입점으로서 포괄적인 Document 클래스를 제공하며, 주석, 인터랙티브 폼 필드, 페이지 조작, 메타데이터 및 PDF/A 준수 검증을 완전하게 지원합니다.
라이브러리는 전체 PDF 사양을 포괄하는 527개의 클래스를 노출한다: Document, Page, 및 PageCollection을 통한 문서 구조; Annotation 계층을 통한 주석( WidgetAnnotation, FreeTextAnnotation, 및 HighlightAnnotation 포함); Form, ButtonField, CheckboxField, 및 RadioButtonField을 사용한 대화형 양식; BmpDevice를 통한 페이지 렌더링; 및 ActionRules와 ActionFixes를 통한 PDF/A 준수 검사. 암호화는 CBC 모드의 AESCipher를 통해 제공된다.
귀하의 Maven 프로젝트에 Aspose.PDF FOSS를 추가하고 groupId org.aspose 및 artifactId aspose-pdf를 사용하십시오. 이 라이브러리는 Java 11 이상이 필요하며 완전한 MIT 라이선스를 가지고 있습니다. 엔터프라이즈 기능 및 지원은 Aspose.PDF for Java — Enterprise Product를 참조하십시오.
Document 클래스를 사용하십시오. 기존 문서는 Document(filePath) 또는 Document(stream) 생성자를 통해 액세스할 수 있습니다.PageCollection을 통해 추가하고, 접근하고, 수정합니다. 각 Page는 MediaBox, CropBox, 회전, 리소스 및 콘텐츠 연산자를 노출합니다.DocumentInfo 및 XmpMetadata을 통해 읽고 쓸 수 있습니다.getParser(), getCatalog(), 및 getTrailer()을 통해 액세스합니다.getEmbeddedFiles()로 임베디드 파일 컬렉션을 관리합니다.Document를 만들고 페이지를 채워 넣으세요.PdfFileEditor 및 Page API를 사용하여 페이지를 크기 조정, 회전 또는 재정렬합니다.Annotation 클래스는 모든 주석의 기본이며; 구체적인 유형에는 WidgetAnnotation, FreeTextAnnotation, HighlightAnnotation, 및 UnderlineAnnotation가 포함됩니다.Document.getForm()를 통해 문서 양식에 액세스하여 ButtonField, CheckboxField, 및 RadioButtonField 인스턴스를 열거하거나 생성합니다.AppearanceCharacteristics를 통해 시각적 속성을 제어합니다 — 테두리 색상, 배경, 회전 및 캡션.FormEditor와 FormElement을 사용하십시오.ActionRules 및 ActionFixes을(를) 사용하십시오.AESCipher를 사용하여 CBC 모드(AESCipher.encrypt(key, data) 및 AESCipher.decrypt(key, data))로 데이터 바이트 배열을 암호화 및 복호화합니다.Artifact 및 ArtifactCollection API를 통해 식별하고 조작합니다.PdfFileEditor.resizeContents()와 ContentsResizeParameters을 사용하여 페이지 콘텐츠 레이아웃을 조정합니다.AnnotationRules 및 ActionRules을 사용하여 검증합니다.AESCipher를 사용하여 문서 스트림에 포함된 데이터 섹션을 암호화합니다.Artifact 객체를 감지하고 관리합니다.ActionFixes와 AnnotationFixes를 실행하십시오.새 문서를 만들고 페이지를 추가한 뒤 스타일이 적용된 위젯 주석을 첨부합니다.
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");
}
```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);
}