Aspose.PDF FOSS για Java είναι μια βιβλιοθήκη Java αδειοδοτημένη με MIT για δημιουργία και εργασία με έγγραφα PDF. Παρέχει μια ολοκληρωμένη κλάση Document ως το κεντρικό σημείο εισόδου, μαζί με πλήρη κάλυψη των σχολίων, των διαδραστικών πεδίων φόρμας, της διαχείρισης σελίδων, των μεταδεδομένων και της επικύρωσης συμμόρφωσης PDF/A.
Η βιβλιοθήκη εκθέτει 527 κλάσεις που καλύπτουν ολόκληρη την προδιαγραφή PDF: δομή εγγράφου μέσω Document, Page και PageCollection; σημειώσεις μέσω της ιεραρχίας Annotation (συμπεριλαμβανομένων των WidgetAnnotation, FreeTextAnnotation και HighlightAnnotation); διαδραστικές φόρμες με Form, ButtonField, CheckboxField και RadioButtonField; απόδοση σελίδας μέσω BmpDevice; και έλεγχο συμμόρφωσης PDF/A μέσω ActionRules και ActionFixes. Η κρυπτογράφηση παρέχεται μέσω AESCipher σε λειτουργία CBC.
Προσθέστε το Aspose.PDF FOSS στο Maven project σας χρησιμοποιώντας το groupId org.aspose και το artifactId aspose-pdf. Η βιβλιοθήκη απαιτεί Java 11 ή νεότερη και είναι πλήρως αδειοδοτημένη με MIT. Για επιχειρηματικές λειτουργίες και υποστήριξη, δείτε το Aspose.PDF for Java — Enterprise Product.
Document για να δημιουργήσετε νέα έγγραφα PDF. Τα υπάρχοντα έγγραφα μπορούν να προσπελαστούν μέσω των κατασκευαστών Document(filePath) ή Document(stream).PageCollection. Κάθε Page εκθέτει MediaBox, CropBox, περιστροφή, πόρους και χειριστές περιεχομένου.DocumentInfo και XmpMetadata.getParser(), getCatalog() και getTrailer().getEmbeddedFiles().Document και γεμίζοντας τις σελίδες.PdfFileEditor και το Page API.Annotation είναι η βάση για όλα τα σχόλια· οι συγκεκριμένοι τύποι περιλαμβάνουν WidgetAnnotation, FreeTextAnnotation, HighlightAnnotation και UnderlineAnnotation.Document.getForm() για απαρίθμηση ή δημιουργία ButtonField, CheckboxField και RadioButtonField παραδειγμάτων.AppearanceCharacteristics — χρώμα περιγράμματος, φόντο, περιστροφή και λεζάντες.FormEditor και FormElement για χειρισμό φόρμας υψηλότερου επιπέδου.ActionRules και ActionFixes.AESCipher χρησιμοποιώντας λειτουργία CBC (AESCipher.encrypt(key, data) και AESCipher.decrypt(key, data)).Artifact και ArtifactCollection APIs.PdfFileEditor.resizeContents() και ContentsResizeParameters.AnnotationRules και ActionRules.AESCipher για την κρυπτογράφηση τμημάτων δεδομένων ενσωματωμένων σε ροές εγγράφων.Artifact αντικειμένων που αντιπροσωπεύουν υδατογραφήματα και διακοσμήσεις σελίδας.ActionFixes και το AnnotationFixes ώστε τα υπάρχοντα έγγραφα να πληρούν τα πρότυπα αρχειοθέτησης PDF/A-1b.Δημιουργήστε ένα νέο έγγραφο, προσθέστε μια σελίδα και επισυνάψτε μια σημείωση widget με στυλ.
try (Document doc = new Document()) {
Page page = doc.getPages().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("output.pdf");
}
```java
try (Document doc = new Document()) {
Page page = doc.getPages().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("output.pdf");
}
Προσθέστε μια ομάδα κουμπιών ραδιοφώνου σε μια φόρμα εγγράφου και επιλέξτε μια τιμή προγραμματιστικά.
try (Document doc = new Document()) {
Page page = doc.getPages().add();
RadioButtonField radio = new RadioButtonField(page);
radio.setPartialName("choice");
radio.addOption("Option1", new Rectangle(50, 50, 70, 70));
radio.addOption("Option2", new Rectangle(50, 80, 70, 100));
doc.getForm().add(radio, 1);
radio.setValue("Option2");
doc.save("form.pdf");
}
Προσπελάστε ένα υπάρχον έγγραφο και διαβάστε τις διαστάσεις του media box της πρώτης σελίδας.
try (Document doc = new Document("input.pdf")) {
double width = doc.getPages().get(1).getMediaBox().getWidth();
double height = doc.getPages().get(1).getMediaBox().getHeight();
System.out.println("Page size: " + width + " x " + height);
}