Introducere
Aspose.PDF FOSS for Java is an MIT-licensed Java library for creating and manipulating Documente PDF. Este disponibil pe GitHub sub licența MIT și nu necesită cheie API Biblioteca prezintă 527 de clase care acoperă întregul PDF. specificații de la structura documentului până la anotațiile, formularele interactive și procesul de redare a paginii;, și operațiuni criptografice.
Biblioteca este construită în jurul Document clasa, care este punctul central de intrare pentru: Crearea unui nou document, accesarea paginii prin intermediul PageCollection, citirea metadatelor prin intermediul DocumentInfo, sau navigând prin catalogul de pe internet. getCatalog() și de: getTrailer() toate încep cu un Document În cazul în care.
Început rapid
Adăugaţi dependenţa Maven la dvs. pom.xml:
<dependency>
<groupId>org.aspose</groupId>
<artifactId>aspose-pdf</artifactId>
<version>0.1.0-alpha</version>
</dependency>
Biblioteca organizează toate clasele API publice sub trei pachete. Adăugați aceste declarații de pachet la orice fișier Java care utilizează API:
// Core API — Document, Page, Annotation, Form, etc.
org.aspose.pdf.*
// Annotation subclasses
org.aspose.pdf.annotations.*
// Facade classes — PdfFileEditor, PdfAnnotationEditor, etc.
org.aspose.pdf.facades.*
Aspose.PDF FOSS for Java requires Java 11 or later. The source code and issue tracker sunt disponibile la: https://github.com/aspose-pdf-foss/Aspose.PDF-FOSS-for-Java.
Cum să începem?
Crearea și salvarea unui document minim pentru a verifica configurarea:
try (Document doc = new Document()) {
PageCollection pages = doc.getPages();
Page page = pages.add();
doc.save("output.pdf");
System.out.println("Pages: " + pages.getCount());
}
În ceea ce priveşte Document constructor clasa acceptă o cale de fișiere sau flux pentru accesarea existente fișiere, sau poate fi chemat fără argumente pentru a crea un document gol. Paginile sunt gestionate de prin intermediul PageCollection, accesibil prin intermediul: Document.getPages().Fiecare . Page expune propriile geometrie via getMediaBox(), getCropBox(), și getRotate(), şi oferă acces la: resurse, operatori de conținut și anotații.
try (Document doc = new Document()) {
PageCollection pages = doc.getPages();
Page page = pages.add();
// page.getMediaBox() -> Rectangle with width/height
// page.getAnnotations() -> AnnotationCollection
doc.save("output.pdf");
}
În ceea ce priveşte PdfFileEditor clasa oferă concatenate() pentru fuziunea mai multor documente și resizeContents() cu: ContentsResizeParameters pentru ajustarea layout-ului de conținut în cadrul limitele de pagină existente.
Anotări
Aspose.PDF FOSS for Java implements the full PDF annotation hierarchy rooted at the rezumată Annotation Tipurile de anotații concrete includ: WidgetAnnotation pentru: controale de tip, FreeTextAnnotation pentru apeluri text, HighlightAnnotation și de: UnderlineAnnotation pentru marcare și CircleAnnotation și de: CaretAnnotation pentru: note grafice.
Fiecare anotație este asociată cu un Page și a Rectangle definirea locației sale. Proprietăţile vizuale sunt controlate prin intermediul: AppearanceCharacteristics, care expune setBorder(), setBackground(), setRotate(), și setCaption() Metode, Anotări sunt adăugate la o pagină prin intermediul: page.getAnnotations().add(annotation).
try (Document doc = new Document()) {
PageCollection pages = doc.getPages();
Page page = pages.add();
WidgetAnnotation w = new WidgetAnnotation(page, new Rectangle(0, 0, 100, 50));
w.getCharacteristics().setBorder(Color.fromRgb(1, 0, 0));
w.getCharacteristics().setCaption("Submit");
page.getAnnotations().add(w);
doc.save("annotated.pdf");
}
Câmpuri de formular interactiv
În ceea ce priveşte Form clasa, accesibil prin intermediul Document.getForm(), care gestionează toate câmpurile AcroForm. bibliotecă oferă ButtonField, CheckboxField, RadioButtonField, TextBoxField, ComboBoxField, și ListBoxField pentru construirea de forme complete. FormEditor este o clasa de fațadă pentru a lucra cu câmpurile formularului într-un document legat.
Grupurile de butoane radio sunt create cu: RadioButtonField, care acceptă o pagină şi susţine addOption() pentru a adăuga opțiuni selectabile, fiecare asociat cu o Rectangle pentru imaginea sa vizuală. Locul. setValue() metoda selectează programatic o opțiune.
try (Document doc = new Document()) {
PageCollection pages = doc.getPages();
Page page = pages.add();
RadioButtonField radio = new RadioButtonField(page);
radio.setPartialName("answer");
radio.addOption("Yes", new Rectangle(50, 50, 70, 70));
radio.addOption("No", new Rectangle(50, 80, 70, 100));
doc.getForm().add(radio, 1);
radio.setValue("Yes");
doc.save("form.pdf");
}
Securitate: criptare AES
În ceea ce priveşte AESCipher clasa implementează criptarea AES în modul CBC pentru criptație și decriptare. matricele de date byte încorporate în documente PDF. AESCipher.encrypt(key, data) returnează data de la text cifrat și AESCipher.decrypt(key, data) recuperează textul original. Pentru controlul explicit IV, encryptWithIV(key, iv, plaintext) și de: decryptWithIV(key, iv, cipherText) să furnizeze o operaţiune deterministă.
PDF/A Validarea conformității
Biblioteca include: ActionRules și de: ActionFixes pentru validarea conformității PDF/A și corectare. ActionRules.validate() verificări privind acțiunile interzise în catalog, pagină și intrări în widget. ActionFixes oferă metode precum: removeCatalogAA(), removePageAA(), și removeWidgetAA() să repare dicționarele de acțiuni neconforme. În mod similar, AnnotationRules și de: AnnotationFixes să gestioneze conformitatea cu anotațiile.
Artefacte: titluri, picioare şi semne de apă
În ceea ce priveşte Artifact modele de clasă, decorări de pagini precum capete, picioare, semne cu apă și imagini de fundal. ArtifactCollection, accesibil prin resurse de pagină, permite enumerarea Iterarea şi eliminarea obiectelor de artefact. page.getArtifacts() şi sună. ArtifactCollection.delete(artifact) elimină artefacte specifice fără modificare a lor. fluxuri de conținut documentate direct.
Rendering pagină
În ceea ce priveşte BmpDevice clasa renderizează paginile PDF direct în fișierele de imagine BMP folosind process(page, outputPath). Acest lucru este util pentru generarea miniatură, document preview, sau pipelines de procesare pe bază de imagine.