Java를 위한 Aspose.PDF FOSS의 Facades 레이어

Aspose.PDF FOSS for Java에는 파사드 레이어가 포함됩니다 — 전체 PDF 객체 모델을 탐색할 필요 없이 PDF 문서에 대한 대상 작업을 제공하는 고수준, 작업 중심 클래스 집합입니다. 각 파사드 클래스는 동일한 패턴을 따릅니다: 문서를 바인드하고, 작업을 수행하고, 결과를 저장합니다.

모든 파사드 클래스는 org.aspose.pdf.facades 패키지에 존재합니다:

import org.aspose.pdf.facades.*;

PdfAnnotationEditor: 주석 평탄화 및 제거

PdfAnnotationEditor은(는) 주석을 일괄 관리하는 작업을 제공합니다: 주석을 페이지 내용에 평탄화하고, 모든 주석을 제거하거나, 이름으로 특정 주석 유형을 제거합니다.

try (PdfAnnotationEditor editor = new PdfAnnotationEditor()) {
    editor.bindPdf("annotated.pdf");
    // Flatten all annotations into the page content stream
    editor.flattenAnnotations();
    editor.save("flat.pdf");
}

deleteAnnotations(annotationType) 오버로드는 "Highlight" 또는 "Widget"와 같은 주석 유형 문자열을 받아 해당 유형의 주석만 제거합니다. countAnnotations()은(는) 모든 페이지에서의 총 주석 개수를 반환합니다.

PdfBookmarkEditor: 책갈피 생성 및 삭제

PdfBookmarkEditor은 PDF 개요 트리(북마크)를 관리합니다. createBookmarks()을(를) 사용하여 새 북마크를 생성하고, deleteBookmarks()을(를) 사용하여 모든 북마크를 삭제하며, deleteBookmarkByTitle()을(를) 사용하여 제목으로 북마크를 제거하는 메서드를 제공합니다.

try (PdfBookmarkEditor bookmarkEditor = new PdfBookmarkEditor()) {
    bookmarkEditor.bindPdf("input.pdf");
    // Remove all bookmarks from the document
    bookmarkEditor.deleteBookmarks();
    bookmarkEditor.save("no-bookmarks.pdf");
}

bindPdf(document) 오버로드는 Document 객체를 직접 받으며, 문서가 이미 메모리로 로드된 파이프라인에서 사용할 수 있게 합니다.

PdfContentEditor: 텍스트 교체

PdfContentEditor은 PDF 콘텐츠 스트림 내에서 대상 텍스트 교체를 지원합니다. replaceText(searchText, replaceText)은 문자열의 모든 발생을 문서 전체에 걸쳐 교체하고, replaceText(searchText, pageNumber, replaceText)은 교체 범위를 단일 페이지로 제한합니다.

try (PdfContentEditor contentEditor = new PdfContentEditor()) {
    contentEditor.bindPdf("template.pdf");
    contentEditor.replaceText("{{CompanyName}}", "Acme Corp");
    contentEditor.save("output.pdf");
}

TextReplaceOptions은 교체 시 원본 글꼴과 크기를 유지할지, 주변 콘텐츠의 텍스트 속성을 상속할지를 제어합니다. getStamps(pageNumber)은 페이지의 모든 스탬프에 대한 StampInfo 객체를 반환하고, deleteStampById()은 식별자를 통해 특정 스탬프를 제거합니다.

PdfFileSecurity: 암호화 및 권한

PdfFileSecurity은 암호화, 복호화 및 접근 권한을 포함한 문서 수준 보안을 관리합니다. 생성자 변형은 파일 경로, 스트림 또는 기존 Document 인스턴스를 출력 대상과 함께 받아들입니다.

DocumentPrivilege은 암호화된 문서의 접근 권한을 나타냅니다. 모든 사용자 작업을 거부하려면 DocumentPrivilege.getForbidAll()을 사용하고, 전체 접근을 허용하려면 DocumentPrivilege.getAllowAll()을 사용하십시오.

try (PdfFileSecurity security = new PdfFileSecurity("input.pdf", "secured.pdf")) {
    DocumentPrivilege privilege = DocumentPrivilege.getForbidAll();
    privilege.setAllowPrint(true);
    security.encryptFile("userPass", "ownerPass", privilege, KeySize.x256);
}

decryptFile(ownerPassword)은(는) 소유자 비밀번호를 알 경우 암호화를 제거합니다. Algorithm 열거형은 RC4AES 알고리즘 패밀리를 제공하며; KeySize는 키 길이를 지정합니다.

PdfFileStamp: 스탬프 및 페이지 번호 추가

PdfFileStamp은(는) PDF 페이지에 텍스트 및 이미지 스탬프를 추가하고 형식화된 페이지 번호를 자동으로 생성할 수 있습니다. 스탬프는 각 페이지에서 좌표 기반 배치를 사용하여 위치가 지정됩니다.

try (PdfFileStamp stamp = new PdfFileStamp("input.pdf", "stamped.pdf")) {
    // Add formatted page numbers to all pages
    stamp.addPageNumber("Page #", PageNumberingStyle.NumeralsArabic,
        0, 0, 0, 20);
}

PdfExtractor: 텍스트 및 이미지 추출

PdfExtractor은(는) PDF 문서에서 텍스트와 이미지를 추출하기 위한 풀 기반 API을 제공합니다. 문서를 바인딩한 후, 텍스트 추출을 트리거하려면 extractText()을(를) 호출하고, 그 다음 hasNextPageText()getNextPageText()을(를) 사용해 반복합니다:

try (PdfExtractor extractor = new PdfExtractor()) {
    extractor.bindPdf("document.pdf");
    extractor.extractText();
    while (extractor.hasNextPageText()) {
        String pageText = extractor.getNextPageText();
        // Collect extracted page content
    }
}

이미지 추출의 경우, extractImage()이(가) 추출을 트리거하고 hasNextImage() / getNextImage(outputStream)가 추출된 이미지를 반복합니다. getPassword()setPassword() 메서드는 암호화된 문서를 지원합니다.

시작하기

Maven 의존성을 추가하세요:

<dependency>
  <groupId>org.aspose</groupId>
  <artifactId>aspose-pdf-foss</artifactId>
  <version>26.8.0</version>
</dependency>

모든 파사드 클래스는 Java 11 이상이 필요합니다. Aspose.PDF FOSS for Java은 MIT 라이선스를 가지고 있으며 https://github.com/aspose-pdf-foss/Aspose.PDF-FOSS-for-Java에서 제공됩니다.

관련 리소스