1. 제품
  2.   Aspose.PDF
  3.   Aspose.PDF FOSS for Java

Aspose.PDF FOSS for Java

PDF 문서를 Java에서 생성하고 조작합니다 — 주석, 양식 필드, 페이지 조작 및 PDF/A 준수를 지원합니다. MIT-licensed.

PDF 제작 및 조작을 위한 무료 MIT-허가자 Java 라이브러리

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를 통한 페이지 렌더링; 그리고 ActionRulesActionFixes를 통한 PDF/A 준수 검사. 암호화는 CBC 모드의 AESCipher를 통해 제공됩니다.

Aspose.PDF FOSS를 Maven 프로젝트에 추가하려면 groupId org.aspose와 artifactId aspose-pdf를 사용하십시오. 이 라이브러리는 Java 11 이상이 필요하며 완전한 MIT 라이선스를 갖추고 있습니다. 엔터프라이즈 기능 및 지원에 대해서는 Aspose.PDF for Java — Enterprise Product를 참조하십시오.

문서 구조 및 페이지 관리

  • Document API: Document 클래스를 사용하여 새 PDF 문서를 생성합니다. 기존 문서는 Document(filePath) 또는 Document(stream) 생성자를 통해 액세스할 수 있습니다.
  • Page management: PageCollection을(를) 통해 페이지를 추가, 액세스 및 수정합니다. 각 PageMediaBox, CropBox, 회전, 리소스 및 콘텐츠 연산자를 노출합니다.
  • Metadata: DocumentInfoXmpMetadata을(를) 통해 문서 메타데이터를 읽고 씁니다.
  • PDF structure: getParser(), getCatalog(), 및 getTrailer()을(를) 통해 기본 PDF 객체에 액세스합니다.
  • Embedded files: getEmbeddedFiles()를 사용하여 임베디드 파일 컬렉션을 관리합니다.

공통 문서 처리 시나리오

  • PDF 생성: Document를 만들고 페이지를 채우면서 문서들을 프로그래밍으로 작성합니다.
  • ** 문서 분석:** 메타데이터 검사 또는 양식 필드 수열을 위해 기존 파일에 액세스합니다.
  • ** 페이지 조작:** PdfFileEditorPage API를 사용하여 페이지를 크기를 변경, 회전 또는 재편.
  • 배치 워크플로우: 서버 측 파이프라인에서 여러 문서에 일관된 변환을 적용합니다.

주석 및 양식 필드

  • Annotation hierarchy: 추상 Annotation 클래스는 모든 주석의 기본이며; 구체적인 유형에는 WidgetAnnotation, FreeTextAnnotation, HighlightAnnotation, 및 UnderlineAnnotation가 포함됩니다.
  • Interactive forms: Document.getForm()를 통해 문서 양식에 접근하여 ButtonField, CheckboxField, 및 RadioButtonField 인스턴스를 열거하거나 생성할 수 있습니다.
  • Widget appearance: AppearanceCharacteristics를 통해 시각적 속성을 제어합니다 — 테두리 색상, 배경, 회전 및 캡션.
  • Form editing: 고수준 양식 조작을 위해 FormEditorFormElement을 사용합니다.

문서 검토 및 협업

  • 표시 주석: 문서에 강조, 하위 라인 또는 자유 텍스트 주석을 추가하여 작업 흐름을 검토하십시오.
  • ** 인터랙티브 양식:** 데이터 캡처를 위해 라디오 버튼, 체크박스 및 눌러버튼을 사용하여 작성 가능한 문서를 만들어보세요.
  • 포름 데이터 추출: 서버 측 파이프라인에 대한 제출된 양식 필드 값을 읽어보세요.
  • 기록관의 준수: ActionRulesActionFixes을 사용하여 장기간 보관하기 위한 문서를 확인하고 수정합니다.

보안 및 콘텐츠 운영

  • AES 암호화: CBC 모드를 사용하여 AESCipher로 데이터 바이트 배열을 암호화하고 해독합니다 (AESCipher.encrypt(key, data)AESCipher.decrypt(key, data)).
  • 유물 관리: ArtifactArtifactCollection API를 통해 헤더, 푸터, 워터마크 및 배경 이미지를 식별하고 조작합니다.
  • ** 콘텐츠 크기를 변경:** PdfFileEditor.resizeContents()ContentsResizeParameters으로 페이지 내용 레이아웃을 조정합니다.
  • ** 준수 검증:** AnnotationRulesActionRules을 사용하여 PDF/A 표준에 대한 주석과 행동 규칙을 확인합니다.

문서 보안 사용 사례

  • ** 암호화 된 유료:** 문서 스트림에 내장된 데이터 섹션을 암호화하기 위해 AESCipher를 사용하십시오.
  • ** 문서 보호:** 준수 작업 흐름에서 접근 통제를 위한 보안 설정을 적용합니다.
  • ** 워터마크:** 워터를 표현하는 Artifact 객체와 페이지 장식물을 탐지하고 관리합니다.
  • 기록보호 준수: ActionFixesAnnotationFixes를 실행하여 기존 문서가 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);
}
  

지원 및 학습 자료

 한국어