Aspose.PDF FOSS untuk Java ialah perpustakaan Java berlesen MIT untuk mencipta dan bekerja dengan dokumen PDF. Ia menyediakan kelas Document yang komprehensif sebagai titik masuk utama, bersama dengan liputan penuh anotasi, medan borang interaktif, manipulasi halaman, metadata, dan pengesahan pematuhan PDF/A.
Pustaka ini mendedahkan 527 kelas yang meliputi spesifikasi PDF penuh: struktur dokumen melalui Document, Page, dan PageCollection; anotasi melalui hierarki Annotation (termasuk WidgetAnnotation, FreeTextAnnotation, dan HighlightAnnotation); borang interaktif dengan Form, ButtonField, CheckboxField, dan RadioButtonField; rendering halaman melalui BmpDevice; dan pemeriksaan pematuhan PDF/A melalui ActionRules dan ActionFixes. Penyulitan disediakan melalui AESCipher dalam mod CBC.
Tambah Aspose.PDF FOSS ke projek Maven anda menggunakan groupId org.aspose dan artifactId aspose-pdf. Pustaka memerlukan Java 11 atau lebih baru dan berlesen MIT sepenuhnya. Untuk ciri‑ciri perusahaan dan sokongan, lihat Aspose.PDF for Java — Enterprise Product.
Document untuk membuat dokumen PDF baru. Dokumen sedia ada boleh diakses melalui konstruktor Document(filePath) atau Document(stream).PageCollection. Setiap Page mendedahkan MediaBox, CropBox, putaran, sumber, dan operator kandungan.DocumentInfo dan XmpMetadata.getParser(), getCatalog(), dan getTrailer().getEmbeddedFiles().Document dan mengisi halaman.PdfFileEditor dan API Page.Annotation adalah asas untuk semua anotasi; jenis konkrit termasuk WidgetAnnotation, FreeTextAnnotation, HighlightAnnotation, dan UnderlineAnnotation.Document.getForm() untuk menyenaraikan atau membuat ButtonField, CheckboxField, dan RadioButtonField instans.AppearanceCharacteristics — warna sempadan, latar belakang, putaran, dan kapsyen.FormEditor dan FormElement untuk manipulasi borang peringkat lebih tinggi.ActionRules dan ActionFixes.AESCipher menggunakan mod CBC (AESCipher.encrypt(key, data) dan AESCipher.decrypt(key, data)).Artifact dan ArtifactCollection.PdfFileEditor.resizeContents() dan ContentsResizeParameters.AnnotationRules dan ActionRules.AESCipher untuk menyulitkan bahagian data yang disematkan dalam aliran dokumen.Artifact yang mewakili watermark dan hiasan halaman.ActionFixes dan AnnotationFixes untuk menjadikan dokumen sedia ada mematuhi piawaian arkib PDF/A-1b.Buat dokumen baru, tambahkan halaman, dan lampirkan anotasi widget dengan gaya.
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");
}
Tambah kumpulan butang radio ke borang dokumen dan pilih nilai secara programatik.
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");
}
Akses dokumen sedia ada dan baca dimensi kotak media halaman pertama.
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);
}