1. Produk
  2.   Aspose.PDF
  3.   Aspose.PDF FOSS for Java

Aspose.PDF FOSS untuk Java

Cipta dan manipulasi dokumen PDF dari Java — dengan anotasi, medan borang, manipulasi halaman, dan pematuhan PDF/A. Dilisensikan MIT.

Perpustakaan Java Percuma Berlesen MIT untuk Penciptaan dan Manipulasi PDF

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.

Struktur Dokumen dan Pengurusan Halaman

  • Document API: Gunakan kelas Document untuk membuat dokumen PDF baru. Dokumen sedia ada boleh diakses melalui konstruktor Document(filePath) atau Document(stream).
  • Pengurusan halaman: Tambah, akses, dan ubah halaman melalui PageCollection. Setiap Page mendedahkan MediaBox, CropBox, putaran, sumber, dan operator kandungan.
  • Metadata: Baca dan tulis metadata dokumen melalui DocumentInfo dan XmpMetadata.
  • Struktur PDF: Akses objek PDF yang mendasari melalui getParser(), getCatalog(), dan getTrailer().
  • Fail terbenam: Urus koleksi fail terbenam dengan getEmbeddedFiles().

Senario Pemprosesan Dokumen Umum

  • PDF generation: Bina dokumen secara programatik dengan mencipta Document dan mengisi halaman.
  • Analisis dokumen: Akses fail sedia ada untuk pemeriksaan metadata atau enumerasi medan borang.
  • Manipulasi halaman: Ubah saiz, putar, atau susun semula halaman menggunakan PdfFileEditor dan API Page.
  • Batch workflows: Terapkan transformasi konsisten merentasi pelbagai dokumen dalam paip sisi-pelayan.

Anotasi dan Medan Borang

  • Hierarki anotasi: Kelas abstrak Annotation adalah asas untuk semua anotasi; jenis konkrit termasuk WidgetAnnotation, FreeTextAnnotation, HighlightAnnotation, dan UnderlineAnnotation.
  • Borang interaktif: Akses borang dokumen melalui Document.getForm() untuk menyenaraikan atau membuat ButtonField, CheckboxField, dan RadioButtonField instans.
  • Penampilan widget: Kawal sifat visual melalui AppearanceCharacteristics — warna sempadan, latar belakang, putaran, dan kapsyen.
  • Penyuntingan borang: Gunakan FormEditor dan FormElement untuk manipulasi borang peringkat lebih tinggi.

Semakan Dokumen dan Kerjasama

  • Markup annotations: Tambah anotasi sorotan, garis bawah, atau teks bebas pada dokumen untuk alur kerja semakan.
  • Borang interaktif: Bina dokumen yang boleh diisi dengan butang radio, kotak semak, dan butang tekan untuk menangkap data.
  • Pengambilan data borang: Baca nilai medan borang yang dihantar untuk paip sisi pelayan.
  • Kepatuhan arkib: Sahkan dan baiki dokumen untuk arkib jangka panjang menggunakan ActionRules dan ActionFixes.

Operasi Keselamatan dan Kandungan

  • AES encryption: Enkripsi dan nyahenkripsi array bait data dengan AESCipher menggunakan mod CBC (AESCipher.encrypt(key, data) dan AESCipher.decrypt(key, data)).
  • Pengurusan artifak: Kenal pasti dan manipulasi pengepala, pengaki, tanda air, dan imej latar belakang melalui API Artifact dan ArtifactCollection.
  • Saiz semula kandungan: Laras susun atur kandungan halaman dengan PdfFileEditor.resizeContents() dan ContentsResizeParameters.
  • Pengesahan pematuhan: Sahkan peraturan anotasi dan tindakan terhadap piawaian PDF/A menggunakan AnnotationRules dan ActionRules.

Kes Penggunaan Keselamatan Dokumen

  • Payload terenkripsi: Gunakan AESCipher untuk menyulitkan bahagian data yang disematkan dalam aliran dokumen.
  • Perlindungan dokumen: Terapkan tetapan keselamatan untuk kawalan akses dalam aliran kerja pematuhan.
  • Watermarking: Mengesan dan mengurus objek Artifact yang mewakili watermark dan hiasan halaman.
  • Pemenuhan arkib: Jalankan ActionFixes dan AnnotationFixes untuk menjadikan dokumen sedia ada mematuhi piawaian arkib PDF/A-1b.

Cipta Dokumen dengan Anotasi Widget

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");
}

Cipta Borang dengan Butang Radio

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");
}

Periksa Dimensi Halaman Dokumen

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);
}
  

Sokongan dan Sumber Pembelajaran

 Bahasa Melayu