
Menggabungkan Berbilang Fail PDF Dijana pada Masa Jalan
Soalan:
Bagaimana cara saya menggabungkan berbilang Fail PDF dijana pada masa jalan menggunakan iTextSharp untuk pencetakan tujuan?
Jawapan:
Untuk menggabungkan dokumen sumber dalam iText(Sharp), dua situasi berbeza timbul:
-
Memelihara Reka Letak Asal:
Untuk menggabungkan dokumen dengan halaman yang tidak diubah, anotasi, dan kandungan, menggunakan penyelesaian berdasarkan keluarga kelas Pdf*Copy*. Ini memastikan integriti ciri interaktif dokumen asal.
-
Mencipta Dokumen Baharu:
Untuk menyepadukan halaman sambil mengawal format keseluruhan dan membuang ciri interaktif, pertimbangkan untuk menggunakan kelas PdfWriter . Ia membenarkan mengimport halaman daripada dokumen sumber dan mengawal pembentangannya.
Pelaksanaan Menggunakan PdfCopy:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | byte[] mergedPdf = null;
using (MemoryStream ms = new MemoryStream())
{
using (Document document = new Document())
{
using (PdfCopy copy = new PdfCopy(document, ms))
{
document.Open();
for (int i = 0; i < pdf. Count ; ++i)
{
PdfReader reader = new PdfReader(pdf[i]);
int n = reader.NumberOfPages;
for (int page = 0; page < n; )
{
copy .AddPage( copy .GetImportedPage(reader, ++page));
}
}
}
}
mergedPdf = ms.ToArray();
}
|
Salin selepas log masuk
Dalam kod yang disediakan, pdf ialah susunan tatasusunan bait, setiap satu mewakili dokumen PDF yang dijana. Tatasusunan baitPdf gabungan yang terhasil mengandungi kandungan PDF gabungan yang disediakan untuk dicetak.
Ringkasan Kelas:
-
PdfCopy: Menyalin halaman tanpa redundansi pengesanan, tetapi boleh bergelut dengannya borang.
-
PdfCopyFields: Menggabungkan medan dan borang tetapi mungkin menggunakan memori yang berlebihan.
-
PdfSmartCopy: Mengesan lebihan dengan cekap tetapi memerlukan lebih banyak sumber.
-
PdfWriter: Mengimport halaman tetapi mengorbankan ciri interaktif halaman yang diimport.
Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Fail PDF Dijana Runtime dalam iTextSharp untuk Percetakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!