Warstwa fasad w Aspose.PDF FOSS dla Java

Aspose.PDF FOSS dla Java zawiera warstwę fasad — zestaw wysokopoziomowych, ukierunkowanych na zadania klas, które zapewniają celowe operacje na dokumentach PDF bez konieczności nawigacji po pełnym modelu obiektów PDF. Każda klasa fasady podąża za tym samym wzorcem: powiązać dokument, wykonać operacje, zapisać wynik.

Wszystkie klasy fasad znajdują się w pakiecie org.aspose.pdf.facades:

import org.aspose.pdf.facades.*;

PdfAnnotationEditor: Spłaszcz i usuń adnotacje

PdfAnnotationEditor zapewnia operacje zarządzania adnotacjami zbiorczo: spłaszczanie ich do zawartości strony, usuwanie wszystkich adnotacji lub usuwanie konkretnych typów adnotacji według nazwy.

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

Przeciążenie deleteAnnotations(annotationType) przyjmuje ciąg typu adnotacji, taki jak "Highlight" lub "Widget", aby usunąć tylko adnotacje tego typu. countAnnotations() zwraca łączną liczbę adnotacji we wszystkich stronach.

PdfBookmarkEditor: Utwórz i usuń zakładki

PdfBookmarkEditor zarządza drzewem spisu treści PDF (zakładkami). Udostępnia metody do tworzenia nowych zakładek przy użyciu createBookmarks(), usuwania wszystkich zakładek przy użyciu deleteBookmarks() oraz usuwania zakładek według tytułu przy użyciu deleteBookmarkByTitle().

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

Przeciążenie bindPdf(document) przyjmuje bezpośrednio obiekt Document, umożliwiając użycie w potokach, w których dokument jest już załadowany do pamięci.

PdfContentEditor: Zastępowanie tekstu

PdfContentEditor obsługuje ukierunkowane zastępowanie tekstu w strumieniach zawartości PDF. replaceText(searchText, replaceText) zamienia wszystkie wystąpienia ciągu znaków w całym dokumencie; replaceText(searchText, pageNumber, replaceText) ogranicza zastąpienie do jednej strony.

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

TextReplaceOptions kontroluje, czy zastąpienie ma zachować oryginalną czcionkę i rozmiar, czy dziedziczyć właściwości tekstu z otaczającej treści. getStamps(pageNumber) zwraca obiekty StampInfo dla wszystkich stempli na stronie, a deleteStampById() usuwa konkretny stempel według jego identyfikatora.

PdfFileSecurity: Szyfrowanie i uprawnienia

PdfFileSecurity zarządza zabezpieczeniami na poziomie dokumentu, w tym szyfrowaniem, odszyfrowywaniem i uprawnieniami dostępu. Warianty konstruktora akceptują ścieżki plików, strumienie lub istniejącą instancję Document wraz z miejscem docelowym wyjścia.

DocumentPrivilege reprezentuje uprawnienia dostępu do zaszyfrowanego dokumentu. Użyj DocumentPrivilege.getForbidAll(), aby odmówić wszystkich operacji użytkownika, lub DocumentPrivilege.getAllowAll(), aby przyznać pełny dostęp.

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) usuwa szyfrowanie, gdy znane jest hasło właściciela. Enum Algorithm dostarcza rodziny algorytmów RC4 i AES; KeySize określa długość klucza.

PdfFileStamp: Dodawanie pieczątek i numerów stron

PdfFileStamp dodaje tekstowe i graficzne pieczątki do stron PDF oraz może automatycznie generować sformatowane numery stron. Pieczątki są rozmieszczane przy użyciu pozycjonowania opartego na współrzędnych na każdej stronie.

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: Ekstrakcja tekstu i obrazów

PdfExtractor zapewnia pobierane API do wyodrywania tekstu i obrazów z dokumentów PDF. Po powiązaniu dokumentu wywołaj extractText(), aby uruchomić ekstrakcję tekstu, a następnie iteruj przy użyciu hasNextPageText() i getNextPageText():

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

W przypadku ekstrakcji obrazów extractImage() wyzwala proces, a hasNextImage() / getNextImage(outputStream) iterują po wyodrębnionych obrazach. Metody getPassword() i setPassword() obsługują zaszyfrowane dokumenty.

Rozpoczęcie

Dodaj zależność Maven:

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

Wszystkie klasy fasady wymagają Java 11 lub nowszej. Aspose.PDF FOSS dla Java jest licencjonowane na licencji MIT i dostępne pod adresem https://github.com/aspose-pdf-foss/Aspose.PDF-FOSS-for-Java.

Powiązane zasoby