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

Aspose.PDF FOSS untuk Java

Buat dan manipulasi dokumen PDF dari Java — dengan anotasi, bidang formulir, manipulasi halaman, dan kepatuhan PDF/A. Berlisensi MIT.

Perpustakaan Java Gratis Berlisensi MIT untuk Pembuatan dan Manipulasi PDF

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.

Struktur Dokumen dan Manajemen Halaman

  • Document API: Gunakan kelas Document untuk membuat dokumen PDF baru. Dokumen yang ada dapat diakses melalui konstruktor Document(filePath) atau Document(stream).
  • Manajemen halaman: Tambahkan, akses, dan modifikasi halaman melalui PageCollection. Setiap Page mengekspos MediaBox, CropBox, rotasi, sumber daya, dan operator konten.
  • Metadata: Baca dan tulis metadata dokumen melalui DocumentInfo dan XmpMetadata.
  • Struktur PDF: Akses objek PDF yang mendasari melalui getParser(), getCatalog(), dan getTrailer().
  • Embedded files: Kelola koleksi file tersemat dengan getEmbeddedFiles().

Skenario Pemrosesan Dokumen Umum

  • PDF generation: Bangun dokumen secara programatis dengan membuat Document dan mengisi halaman.
  • Analisis dokumen: Akses file yang ada untuk inspeksi metadata atau enumerasi bidang formulir.
  • Manipulasi halaman: Ubah ukuran, putar, atau urutkan kembali halaman menggunakan PdfFileEditor dan API Page.
  • Batch workflows: Terapkan transformasi konsisten di seluruh beberapa dokumen dalam pipeline sisi server.

Anotasi dan Bidang Formulir

  • Hierarki anotasi: Kelas abstrak Annotation adalah dasar untuk semua anotasi; tipe konkret meliputi WidgetAnnotation, FreeTextAnnotation, HighlightAnnotation, dan UnderlineAnnotation.
  • Interactive forms: Akses formulir dokumen melalui Document.getForm() untuk mendaftar atau membuat instance ButtonField, CheckboxField, dan RadioButtonField instances.
  • Penampilan widget: Kontrol properti visual melalui AppearanceCharacteristics — warna border, latar belakang, rotasi, dan keterangan.
  • Pengeditan formulir: Gunakan FormEditor dan FormElement untuk manipulasi formulir tingkat tinggi.

Peninjauan Dokumen dan Kolaborasi

  • Markup annotations: Tambahkan anotasi sorotan, garis bawah, atau teks bebas ke dokumen untuk alur kerja peninjauan.
  • Formulir interaktif: Buat dokumen yang dapat diisi dengan tombol radio, kotak centang, dan tombol tekan untuk menangkap data.
  • Ekstraksi data formulir: Baca nilai bidang formulir yang dikirim untuk pipeline sisi server.
  • Kepatuhan arsip: Validasi dan perbaiki dokumen untuk pengarsipan jangka panjang menggunakan ActionRules dan ActionFixes.

Keamanan dan Operasi Konten

  • Enkripsi AES: Enkripsi dan dekripsi array byte data dengan AESCipher menggunakan mode CBC (AESCipher.encrypt(key, data) dan AESCipher.decrypt(key, data)).
  • Manajemen artefak: Identifikasi dan manipulasi header, footer, watermark, dan gambar latar belakang melalui API Artifact dan ArtifactCollection.
  • Pengubahan ukuran konten: Sesuaikan tata letak konten halaman dengan PdfFileEditor.resizeContents() dan ContentsResizeParameters.
  • Validasi kepatuhan: Validasi aturan anotasi dan aksi terhadap standar PDF/A menggunakan AnnotationRules dan ActionRules.

Kasus Penggunaan Keamanan Dokumen

  • Payload terenkripsi: Gunakan AESCipher untuk mengenkripsi bagian data yang tertanam dalam aliran dokumen.
  • Perlindungan dokumen: Terapkan pengaturan keamanan untuk kontrol akses dalam alur kerja kepatuhan.
  • Watermarking: Deteksi dan kelola objek Artifact yang mewakili watermark dan dekorasi halaman.
  • Kepatuhan arsip: Jalankan ActionFixes dan AnnotationFixes untuk membuat dokumen yang ada memenuhi standar arsip PDF/A-1b.

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

Buat Formulir dengan Tombol Radio

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

Periksa Dimensi Halaman Dokumen

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

Sumber Daya Dukungan dan Pembelajaran

 Bahasa Indonesia