Menggabungkan Dokumen PDF di C#
Ikhtisar
Artikel ini menjelaskan cara menggabungkan, mengkombinasikan, atau menyatukan berbagai file PDF menjadi satu PDF menggunakan C#. Ini mencakup topik-topik seperti
Gabungkan file PDF menggunakan jalur file
PdfFileEditor adalah kelas dalam Aspose.Pdf.Facades namespace yang memungkinkan Anda untuk menggabungkan beberapa file PDF. Anda tidak hanya dapat menggabungkan file menggunakan FileStreams tetapi juga menggunakan MemoryStreams. Dalam artikel ini, proses penggabungan file menggunakan MemoryStreams akan dijelaskan dan kemudian ditunjukkan menggunakan cuplikan kode.
Metode Concatenate dari kelas PdfFileEditor dapat digunakan untuk menggabungkan dua file PDF. Metode Concatenate memungkinkan Anda untuk memasukkan tiga parameter: PDF input pertama, PDF input kedua, dan PDF output. PDF output akhir berisi kedua file PDF input.
Cuplikan kode C# berikut menunjukkan cara menggabungkan file PDF menggunakan jalur file.
Dalam beberapa kasus, ketika ada banyak outline, pengguna dapat menonaktifkannya dengan mengatur CopyOutlines ke false dan meningkatkan kinerja penggabungan.
Menggabungkan beberapa file PDF menggunakan MemoryStreams
Metode Concatenate dari kelas PdfFileEditor mengambil file PDF sumber dan file PDF tujuan sebagai parameter. Parameter ini dapat berupa jalur ke file PDF di disk atau mereka bisa berupa MemoryStreams. Sekarang, untuk contoh ini, kita akan terlebih dahulu membuat dua aliran file untuk membaca file PDF dari disk. Kemudian kita akan mengonversi file-file ini menjadi array byte. Array byte dari file PDF ini akan diubah menjadi MemoryStreams. Setelah kita mendapatkan MemoryStreams dari file PDF, kita akan dapat meneruskannya ke metode penggabungan dan menggabungkannya menjadi satu file keluaran.
Cuplikan kode C# berikut menunjukkan cara menggabungkan beberapa file PDF menggunakan MemoryStreams:
Menggabungkan Array File PDF Menggunakan Jalur File
Jika Anda ingin menggabungkan beberapa file PDF, Anda dapat menggunakan overload dari metode Concatenate, yang memungkinkan Anda untuk memasukkan array file PDF. Output akhir disimpan sebagai file gabungan yang dibuat dari semua file dalam array. Potongan kode C# berikut menunjukkan cara menggabungkan array file PDF menggunakan jalur file.
Menggabungkan Array File PDF Menggunakan Streams
Menggabungkan array file PDF tidak terbatas hanya pada file yang berada di disk. Anda juga dapat menggabungkan array file PDF dari aliran. Jika Anda ingin menggabungkan beberapa file PDF, Anda dapat menggunakan overload yang sesuai dari metode Concatenate. Pertama, Anda perlu membuat array dari aliran input dan satu aliran untuk output PDF dan kemudian memanggil metode Concatenate. Output akan disimpan dalam aliran output. Potongan kode C# berikut menunjukkan cara menggabungkan array file PDF menggunakan aliran.
Menggabungkan semua file Pdf dalam folder tertentu
Anda bahkan dapat membaca semua file Pdf dalam folder tertentu saat runtime dan menggabungkannya, tanpa perlu mengetahui nama file. Berikan jalur direktori, yang berisi dokumen PDF, yang ingin Anda gabungkan.
Silakan coba gunakan potongan kode C# berikut untuk mencapai fungsi ini.
Menggabungkan Formulir PDF dan menjaga nama bidang tetap unik
Kelas PdfFileEditor dalam namespace Aspose.Pdf.Facades menawarkan kemampuan untuk menggabungkan file PDF. Sekarang, jika file Pdf yang akan digabungkan memiliki bidang formulir dengan nama bidang yang serupa, Aspose.PDF menyediakan fitur untuk menjaga agar bidang dalam file Pdf hasil tetap unik dan Anda juga dapat menentukan akhiran untuk membuat nama bidang unik. Properti KeepFieldsUnique dari PdfFileEditor sebagai true akan membuat nama bidang unik ketika formulir Pdf digabungkan. Juga, properti UniqueSuffix dari PdfFileEditor dapat digunakan untuk menentukan format akhiran yang ditentukan pengguna yang ditambahkan ke nama bidang untuk membuatnya unik ketika formulir digabungkan. String ini harus mengandung substring %NUM%
yang akan diganti dengan angka dalam file hasil.
Silakan lihat cuplikan kode sederhana berikut untuk mencapai fungsionalitas ini.
Menggabungkan file PDF dan membuat Daftar Isi
Menggabungkan file PDF
Silakan lihat potongan kode berikut untuk informasi tentang cara menggabungkan file PDF.
Menyisipkan halaman kosong
Setelah file PDF digabungkan, kita dapat menyisipkan halaman kosong di awal dokumen di mana kita dapat membuat Daftar Isi. Untuk memenuhi persyaratan ini, kita dapat memuat file yang digabungkan ke dalam objek Document dan kita perlu memanggil metode Page.Insert(…) untuk menyisipkan halaman kosong.
Menambahkan Stempel Teks
Untuk membuat Daftar Isi, kita perlu menambahkan stempel teks pada halaman pertama menggunakan objek PdfFileStamp dan Stamp. Stamp class menyediakan metode BindLogo(...)
untuk menambahkan FormattedText dan kita juga dapat menentukan lokasi untuk menambahkan stempel teks ini menggunakan metode SetOrigin(..)
. Dalam artikel ini, kita menggabungkan dua file PDF, jadi kita perlu membuat dua objek stempel teks yang mengarah ke dokumen individual ini.
Buat tautan lokal
Sekarang kita perlu menambahkan tautan ke halaman di dalam file yang digabungkan. Untuk memenuhi persyaratan ini, kita dapat menggunakan metode CreateLocalLink(..)
dari kelas PdfContentEditor. Dalam cuplikan kode berikut, kami telah mengirimkan Transparent sebagai argumen ke-4 sehingga persegi panjang di sekitar tautan tidak terlihat.
Complete code
Menggabungkan file PDF dalam folder
Kelas PdfFileEditor dalam namespace Aspose.Pdf.Facades menawarkan kemampuan untuk menggabungkan file PDF. Anda bahkan dapat membaca semua file Pdf dalam folder tertentu pada waktu proses dan menggabungkannya, tanpa harus mengetahui nama file. Cukup berikan jalur direktori yang berisi dokumen PDF yang ingin Anda gabungkan.
Silakan coba gunakan potongan kode C# berikut untuk mencapai fungsi ini dari Aspose.PDF:
// Jalur ke direktori dokumen.
string dataDir = RunExamples.GetDataDir_AsposePdfFacades_TechnicalArticles();
// Ambil nama semua file Pdf dalam Direktori tertentu
string[] fileEntries = Directory.GetFiles(dataDir, "*.pdf");
// Dapatkan tanggal Sistem saat ini dan atur formatnya
string date = DateTime.Now.ToString("MM-dd-yyyy");
// Dapatkan waktu Sistem saat ini dan atur formatnya
string hoursSeconds = DateTime.Now.ToString("hh-mm");
// Tetapkan nilai untuk dokumen Pdf Hasil Akhir
string masterFileName = date + "_" + hoursSeconds + "_out.pdf";
// Instansiasi objek PdfFileEditor
Aspose.Pdf.Facades.PdfFileEditor pdfEditor = new PdfFileEditor();
// Panggil metode Concatenate dari objek PdfFileEditor untuk menggabungkan semua file input
// Menjadi satu file output
pdfEditor.Concatenate(fileEntries, dataDir + masterFileName);