A Facade réteg a Aspose.PDF FOSS-ban a Java számára
Aspose.PDF FOSS a Java számára tartalmaz egy facades réteget — egy magas szintű, feladatra fókuszáló osztálycsoportot, amely célzott műveleteket biztosít PDF dokumentumokon anélkül, hogy a teljes PDF objektummodellt kellene bejárni. Minden facade osztály ugyanazt a mintát követi: egy dokumentum kötése, műveletek végrehajtása, az eredmény mentése.
Minden facade osztály a org.aspose.pdf.facades csomagban található:
import org.aspose.pdf.facades.*;
PdfAnnotationEditor: Laposítás és annotációk eltávolítása
PdfAnnotationEditor műveleteket kínál az annotációk tömeges kezelésére: azok laposítására a lap tartalmába, az összes annotáció eltávolítására, vagy adott név alapján konkrét annotációtípusok eltávolítására.
try (PdfAnnotationEditor editor = new PdfAnnotationEditor()) {
editor.bindPdf("annotated.pdf");
// Flatten all annotations into the page content stream
editor.flattenAnnotations();
editor.save("flat.pdf");
}
A deleteAnnotations(annotationType) túlterhelés egy annotációtípus karakterláncot fogad el, például "Highlight" vagy "Widget", hogy csak az adott típusú annotációkat távolítsa el. countAnnotations() visszaadja az összes oldal annotációinak teljes számát.
PdfBookmarkEditor: Könyvjelzők létrehozása és törlése
PdfBookmarkEditor kezeli a PDF vázlatfát (könyvjelzők). Metódusokat biztosít az új könyvjelzők létrehozásához a createBookmarks() segítségével, az összes könyvjelző törléséhez a deleteBookmarks() használatával, valamint a könyvjelzők cím szerint történő eltávolításához a deleteBookmarkByTitle() segítségével.
try (PdfBookmarkEditor bookmarkEditor = new PdfBookmarkEditor()) {
bookmarkEditor.bindPdf("input.pdf");
// Remove all bookmarks from the document
bookmarkEditor.deleteBookmarks();
bookmarkEditor.save("no-bookmarks.pdf");
}
A bindPdf(document) túlterhelés közvetlenül elfogad egy Document objektumot, lehetővé téve a használatot olyan csővezetékekben, ahol a dokumentum már a memóriába van betöltve.
PdfContentEditor: Szövegcsere
PdfContentEditor támogatja a célzott szövegcserét a PDF tartalomsugarakban. replaceText(searchText, replaceText) kicseréli a karakterlánc összes előfordulását az egész dokumentumban; replaceText(searchText, pageNumber, replaceText) a cserét egyetlen oldalra korlátozza.
try (PdfContentEditor contentEditor = new PdfContentEditor()) {
contentEditor.bindPdf("template.pdf");
contentEditor.replaceText("{{CompanyName}}", "Acme Corp");
contentEditor.save("output.pdf");
}
TextReplaceOptions szabályozza, hogy a csere megőrizze-e az eredeti betűtípust és méretet, vagy örökölje a szöveg tulajdonságait a környező tartalomtól. getStamps(pageNumber) visszaad StampInfo objektumokat az adott oldal összes pecsétjére, és deleteStampById() eltávolít egy konkrét pecsétet az azonosítója alapján.
PdfFileSecurity: Titkosítás és jogosultságok
PdfFileSecurity kezeli a dokumentumszintű biztonságot, beleértve a titkosítást, visszafejtést és a hozzáférési jogosultságokat. A konstruktor változatok elfogadják a fájlútvonalakat, áramlásokat vagy egy meglévő Document példányt a kimeneti cél mellett.
DocumentPrivilege a titkosított dokumentum hozzáférési jogosultságait jelöli. Használja a DocumentPrivilege.getForbidAll()-t minden felhasználói művelet megtagadásához, vagy a DocumentPrivilege.getAllowAll()-t a teljes hozzáférés megadásához.
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) eltávolítja a titkosítást, ha az tulajdonos jelszó ismert. A Algorithm enum RC4 és AES algoritmuscsaládokat biztosít; KeySize adja meg a kulcshosszúságot.
PdfFileStamp: Bélyegzők és oldalszámok hozzáadása
PdfFileStamp szöveg- és képbélyegzőket ad hozzá a PDF oldalakhoz, és automatikusan előállíthat formázott oldalszámokat. A bélyegzőket koordináta-alapú elhelyezéssel helyezi el minden oldalon.
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: Szöveg- és képkivonás
PdfExtractor pull-alapú API-t biztosít a PDF dokumentumokból szöveg és képek kivonásához. Dokumentum kötése után hívd meg a extractText() függvényt a szövegkivonás elindításához, majd iterálj a hasNextPageText() és getNextPageText() segítségével:
try (PdfExtractor extractor = new PdfExtractor()) {
extractor.bindPdf("document.pdf");
extractor.extractText();
while (extractor.hasNextPageText()) {
String pageText = extractor.getNextPageText();
// Collect extracted page content
}
}
Képkivonás esetén a extractImage() indítja a kivonást, a hasNextImage() / getNextImage(outputStream) pedig iterál a kivont képeken. A getPassword() és setPassword() metódusok támogatják a titkosított dokumentumokat.
Első lépések
Adja hozzá a Maven függőséget:
<dependency>
<groupId>org.aspose</groupId>
<artifactId>aspose-pdf-foss</artifactId>
<version>26.8.0</version>
</dependency>Minden felületi osztályhoz Java 11 vagy újabb szükséges. Aspose.PDF FOSS a Java számára MIT licenc alatt áll és elérhető itt: https://github.com/aspose-pdf-foss/Aspose.PDF-FOSS-for-Java.