Manipulasi Dokumen PDF di Java
Aspose.PDF FOSS for Java provides a rich set of APIs for manipulating existing PDF dokumen pemisahan, concatenating, ekstraksi halaman, memasukkan rentang halaman dan Mengubah ukuran konten dalam halaman. Kemampuan ini terkonsentrasi pada PdfFileEditor dan para sahabatnya, ContentsResizeParameters dan (b) ContentsResizeValue.
PdfFileEditor: Operasi Halaman Utama
Pengelolaan PdfFileEditor class adalah fasilitas pusat untuk operasi file PDF tingkat tinggi. Ini menyediakan metode untuk mengikat beberapa file PDF, mengekstrak subset halaman, membagi dokumen menjadi halaman-halaman individu, dan memasukkan halaman dari satu dokumen ke posisi tertentu.
PdfFileEditor editor = new PdfFileEditor();
// Concatenate two documents into one
editor.concatenate("first.pdf", "second.pdf", "combined.pdf");
// Extract pages 2 through 5 to a new file
editor.extract("source.pdf", 2, 5, "extracted.pdf");
Metode utama meliputi:
concatenate(inputFiles, outputFile)menggabungkan beberapa dokumen dalam urutan yang samaextract(inputFile, startPage, endPage, outputFile)mengekspor berbagai produk yang bersambungextract(inputFile, pageNumbers, outputFile)mengekspor satu set yang tidak bersambungsplitToPages(inputFile)terpecah menjadi satuByteArrayOutputStreamper halamaninsert(inputFile, insertPosition, portFile, startPage, endPage, outputFile)memasukkan rentangdelete(inputFile, pageNumbers, outputFile)menghapus halaman tertentuappend(inputFile, portFile, startPage, endPage, outputFile)menambahkan rentang halaman
Untuk file besar, setUseDiskBuffer(true) beralih penyimpanan internal dari heap ke disk.
Isi Mengubah Ukuran dengan KontenParameter Pengukuran
PdfFileEditor.resizeContents() menyesuaikan konten dalam batas halaman yang ada. Setiap margin kiri, kanan, atas, bawah ?? dan lebar konten dan tinggi adalah ditentukan sebagai berikut: ContentsResizeValue contoh, dibangun dengan metode pabrik ContentsResizeValue.percents(value) atau: ContentsResizeValue.units(value).
try (Document doc = new Document("input.pdf")) {
PdfFileEditor editor = new PdfFileEditor();
ContentsResizeParameters params = new ContentsResizeParameters(
ContentsResizeValue.percents(10), // left margin
ContentsResizeValue.percents(80), // content width
ContentsResizeValue.percents(10), // right margin
ContentsResizeValue.percents(10), // top margin
ContentsResizeValue.percents(80), // content height
ContentsResizeValue.percents(10) // bottom margin
);
editor.resizeContents(doc, params);
doc.save("resized.pdf");
}
Konstruktor enam argumen untuk ContentsResizeParameters menerima nilai dalam urutan: kiri Margin, isi lebar, kananMargin , atas Margen, konten Tinggi, bawah Marge. Keenam harus jumlah 100% ketika menggunakan nilai berbasis persentase, atau sesuai dengan halaman. dimensi saat menggunakan nilai titik absolut.
Mengubah ukuran halaman tertentu
Ketika hanya subset halaman yang membutuhkan perubahan ukuran, overload yang menerima array bilangan bulat nomor halaman menargetkan halaman-halaman tersebut sambil meninggalkan sisanya tidak berubah:
PdfFileEditor editor = new PdfFileEditor();
ContentsResizeParameters params = new ContentsResizeParameters(
ContentsResizeValue.units(28), // left margin in points
ContentsResizeValue.units(540), // content width
ContentsResizeValue.units(28), // right margin
ContentsResizeValue.units(28), // top margin
ContentsResizeValue.units(786), // content height
ContentsResizeValue.units(28) // bottom margin
);
// Only resize pages 1 and 3
editor.resizeContents(doc, new int[]{1, 3}, params);
ContentsResizeValue.getValue() dan (b) isPercent() memungkinkan pemeriksaan yang disimpan nilai dan menentukan apakah itu mewakili persentase atau hitungan poin absolut.
Buku dan Tata Letak N-Up
PdfFileEditor mencakup: makeBooklet() untuk memaksakan halaman dalam urutan buku berlapis dua sisi dan (b) makeNUp() untuk menata beberapa halaman per lembar. Kedua metode menerima jalur file atau aliran:
PdfFileEditor editor = new PdfFileEditor();
// Print as a folded booklet
editor.makeBooklet("input.pdf", "booklet.pdf");
// Tile 2 columns × 3 rows per sheet
editor.makeNUp("input.pdf", "nup.pdf", 2, 3);
PdfPageEditor: Per-page Zoom Control
PdfPageEditor menargetkan sifat halaman individu seperti tingkat zoom. setZoom() menerima pemulikar float yang mengontrol pembesaran awal ketika dokumen dibuka dalam pemirsa:
PdfPageEditor pageEditor = new PdfPageEditor();
pageEditor.bindPdf("input.pdf");
pageEditor.setZoom(1.5f);
pageEditor.save("zoomed.pdf");
Nilai dari 0.0 atau negatif ditolak getZoom() pengembalian 1.0 dalam kasus-kasus itu. Ini membuat PdfPageEditor cocok untuk menyiapkan dokumen yang harus dibuka pada waktu tertentu. pembesaran untuk aksesibilitas atau kasus penggunaan kios tampilan.
Memulai
Tambahkan ketergantungan Maven dan impor paket fasad:
<dependency>
<groupId>org.aspose</groupId>
<artifactId>aspose-pdf</artifactId>
<version>0.1.0-alpha</version>
</dependency>
import org.aspose.pdf.*;
import org.aspose.pdf.facades.*;
Aspose.PDF FOSS for Java is MIT-licensed and available at https://github.com/aspose-pdf-foss/Aspose.PDF-FOSS-for-Java.