Aspose.PDF FOSS untuk Java adalah perpustakaan Java berlisensi MIT untuk membuat dan bekerja dengan dokumen PDF. Ini menyediakan kelas Document yang komprehensif sebagai titik masuk utama, bersama dengan cakupan penuh anotasi, bidang formulir interaktif, manipulasi halaman, metadata, dan validasi kepatuhan PDF/A.
Perpustakaan ini menyediakan 527 kelas yang mencakup seluruh spesifikasi PDF: struktur dokumen melalui Document, Page, dan PageCollection; anotasi melalui hierarki Annotation (termasuk WidgetAnnotation, FreeTextAnnotation, dan HighlightAnnotation); formulir interaktif dengan Form, ButtonField, CheckboxField, dan RadioButtonField; rendering halaman melalui BmpDevice; dan pemeriksaan kepatuhan PDF/A melalui ActionRules dan ActionFixes. Enkripsi disediakan melalui AESCipher dalam mode CBC.
Tambahkan Aspose.PDF FOSS ke proyek Maven Anda menggunakan groupId org.aspose dan artifactId aspose-pdf. Perpustakaan memerlukan Java 11 atau lebih baru dan sepenuhnya berlisensi MIT. Untuk fitur dan dukungan enterprise, lihat Aspose.PDF for Java — Enterprise Product.
Document untuk membuat dokumen PDF baru. Dokumen yang ada dapat diakses melalui konstruktor Document(filePath) atau Document(stream).PageCollection. Setiap Page mengekspos MediaBox, CropBox, rotasi, sumber daya, dan operator konten.DocumentInfo dan XmpMetadata.getParser(), getCatalog(), dan getTrailer().getEmbeddedFiles().Document dan mengisi halaman.PdfFileEditor dan API Page.Annotation adalah dasar untuk semua anotasi; tipe konkret meliputi WidgetAnnotation, FreeTextAnnotation, HighlightAnnotation, dan UnderlineAnnotation.Document.getForm() untuk mendaftar atau membuat instance ButtonField, CheckboxField, dan RadioButtonField instances.AppearanceCharacteristics — warna border, latar belakang, rotasi, dan keterangan.FormEditor dan FormElement untuk manipulasi formulir tingkat tinggi.ActionRules dan ActionFixes.AESCipher menggunakan mode CBC (AESCipher.encrypt(key, data) dan AESCipher.decrypt(key, data)).Artifact dan ArtifactCollection.PdfFileEditor.resizeContents() dan ContentsResizeParameters.AnnotationRules dan ActionRules.AESCipher untuk mengenkripsi bagian data yang tertanam dalam aliran dokumen.Artifact yang mewakili watermark dan dekorasi halaman.ActionFixes dan AnnotationFixes untuk membuat dokumen yang ada memenuhi standar arsip 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");
}
Tambahkan grup tombol radio ke formulir dokumen dan pilih nilai secara programatis.
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 yang ada dan baca dimensi media box dari 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);
}