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.