Vrstva fasád v Aspose.PDF FOSS pro Java

Aspose.PDF FOSS pro Java zahrnuje vrstvu fasád — sadu vysoceúrovňových, na úkol zaměřených tříd, které poskytují cílené operace na PDF dokumentech, aniž by bylo nutné procházet celý objektový model PDF. Každá třída fasády následuje stejný vzor: navázat dokument, provést operace, uložit výsledek.

Všechny třídy fasád se nacházejí v balíčku org.aspose.pdf.facades:

import org.aspose.pdf.facades.*;

PdfAnnotationEditor: Zploštit a odstranit anotace

PdfAnnotationEditor poskytuje operace pro hromadnou správu anotací: jejich zploštění do obsahu stránky, odstranění všech anotací nebo odstranění konkrétních typů anotací podle názvu.

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

Přetížení deleteAnnotations(annotationType) přijímá řetězec typu anotace, například "Highlight" nebo "Widget", a odstraní pouze anotace tohoto typu. countAnnotations() vrací celkový počet anotací napříč všemi stránkami.

PdfBookmarkEditor: Vytváření a mazání záložek

PdfBookmarkEditor spravuje strom osnovy PDF (záložky). Poskytuje metody pro vytváření nových záložek pomocí createBookmarks(), mazání všech záložek pomocí deleteBookmarks() a odstraňování záložek podle názvu pomocí deleteBookmarkByTitle().

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

Přetížení bindPdf(document) přijímá objekt Document přímo, což umožňuje jeho použití v pipelinech, kde je dokument již načten do paměti.

PdfContentEditor: Nahrazení textu

PdfContentEditor podporuje cílené nahrazování textu v PDF obsahových streamech. replaceText(searchText, replaceText) nahrazuje všechny výskyty řetězce v celém dokumentu; replaceText(searchText, pageNumber, replaceText) omezuje nahrazení na jednu stránku.

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

TextReplaceOptions určuje, zda má nahrazení zachovat původní písmo a velikost nebo zdědit textové vlastnosti z okolního obsahu. getStamps(pageNumber) vrací objekty StampInfo pro všechny razítka na stránce a deleteStampById() odstraňuje konkrétní razítko podle jeho identifikátoru.

PdfFileSecurity: Šifrování a oprávnění

PdfFileSecurity spravuje zabezpečení na úrovni dokumentu, včetně šifrování, dešifrování a přístupových oprávnění. Varianty konstruktoru přijímají cesty k souborům, streamy nebo existující instanci Document spolu s výstupním cílem.

DocumentPrivilege představuje přístupová oprávnění pro šifrovaný dokument. Použijte DocumentPrivilege.getForbidAll() k zamítnutí všech uživatelských operací nebo DocumentPrivilege.getAllowAll() k udělení plného přístupu.

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) odstraňuje šifrování, když je znám heslo vlastníka. Výčtový typ Algorithm poskytuje rodiny algoritmů RC4 a AES; KeySize určuje délku klíče.

PdfFileStamp: Přidávání razítek a číslování stránek

PdfFileStamp přidává textová a obrázková razítka na stránky PDF a může automaticky generovat formátovaná čísla stránek. Razítka jsou umístěna pomocí souřadnicového umístění na každé stránce.

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: Extrakce textu a obrázků

PdfExtractor poskytuje tahový API pro extrahování textu a obrázků z PDF dokumentů. Po navázání dokumentu zavolejte extractText() pro spuštění extrakce textu, poté iterujte pomocí hasNextPageText() a getNextPageText():

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

Pro extrakci obrázků extractImage() spouští extrakci a hasNextImage() / getNextImage(outputStream) iterují přes extrahované obrázky. Metody getPassword() a setPassword() podporují šifrované dokumenty.

Začínáme

Přidejte Maven závislost:

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

Všechny třídy fasády vyžadují Java 11 nebo novější. Aspose.PDF FOSS pro Java je licencováno pod MIT a je k dispozici na https://github.com/aspose-pdf-foss/Aspose.PDF-FOSS-for-Java.

Související zdroje