Introduction
Konsolidasi penagihan adalah alur kerja yang menggabungkan beberapa dokumen keuangan menjadi satu PDF menggunakan GroupDocs.Merger untuk Python. Tim keuangan sering perlu mengirim faktur bersama dengan nota pengiriman, laporan layanan, dan syarat garansi, tetapi menyatukan file secara manual menimbulkan kesalahan dan membuang waktu. GroupDocs.Merger mengotomatiskan proses ini, memastikan setiap lampiran terurut dengan benar, opsional diamankan, dan disampaikan sebagai satu PDF yang bersih.
Dalam tutorial ini Anda akan melihat cara:
- Menggabungkan faktur PDF biasa dengan sejumlah file pendukung.
- Menangani format campuran seperti gambar JPG dan kontrak DOCX.
- Membuka faktur yang dilindungi kata sandi, menambahkan lampiran, dan menerapkan kembali enkripsi.
- Menyertakan hanya halaman tertentu dari lampiran besar agar paket akhir tetap ringkas.
Saya mengalami skenario ini pada kuartal lalu ketika sistem akuntansi kami menghasilkan faktur yang dilindungi kata sandi dan tim hukum menambahkan dokumen garansi DOCX berhalaman‑banyak. Kode di bawah menyelesaikannya dalam waktu kurang dari lima menit.
When does it make sense to merge a password‑protected invoice with other documents?
Banyak perusahaan mengenkripsi faktur saat disimpan untuk memenuhi persyaratan kepatuhan. Ketika faktur harus dikirim ke pelanggan bersama lampiran yang tidak dilindungi (kwitansi, syarat, gambar), kata sandi asli harus dihapus untuk proses penggabungan dan kemudian diterapkan kembali pada paket akhir. GroupDocs.Merger memungkinkan Anda menyediakan kata sandi pembuka melalui LoadOptions, menggabungkan file tambahan, dan akhirnya melindungi PDF yang digabung dengan AddPasswordOptions. Hal ini menjaga postur kerahasiaan tetap utuh sambil menyampaikan satu dokumen yang mudah dibuka.
Prerequisites
- Python 3.8+ (melalui jembatan .NET)
- GroupDocs.Merger untuk Python – instal dengan:
pip install groupdocs-merger
- Sebuah PDF faktur utama (
invoice.pdf) dan daftar jalur file lampiran. - (Opsional) Kata sandi untuk faktur sumber dan PDF output.
Step 1: Basic Consolidation of PDF Attachments
Kasus paling sederhana adalah menggabungkan faktur PDF dengan PDF lain, gambar, atau file Word. API secara otomatis mengonversi input non‑PDF menjadi PDF sebelum digabungkan.
import groupdocs_merger as gm
# Paths to source files
invoice = "invoice.pdf"
attachments = ["delivery_note.pdf", "service_report.pdf"]
output = "billing_package.pdf"
with gm.Merger(invoice) as merger:
for path in attachments:
merger.join(path) # Normalises each file to PDF and appends it
merger.save(output)
Key points:
gm.Mergerdiinstansiasi dengan dokumen utama (faktur).join()menerima format apa pun yang didukung; perpustakaan menangani konversi.save()menulis PDF yang digabung ke jalur yang ditentukan.
Step 2: Consolidating Mixed‑Format Attachments
Paket penagihan dunia nyata sering berisi gambar hasil pemindaian (JPG) dan kontrak hukum (DOCX). Kode yang sama tetap berfungsi karena GroupDocs.Merger menormalkan setiap lampiran menjadi PDF secara otomatis.
attachments = ["receipt.jpg", "warranty_terms.docx", "extra_clause.pdf"]
output = "billing_mixed.pdf"
with gm.Merger(invoice) as merger:
for path in attachments:
merger.join(path) # JPG and DOCX are converted to PDF automatically
merger.save(output)
Why it matters: Mengonversi semuanya ke PDF menghilangkan kebutuhan penerima untuk beralih‑ganti penampil, memberikan pengalaman yang mulus.
Step 3: Handling Password‑Protected Invoices
Jika faktur dienkripsi, berikan kata sandi melalui LoadOptions. Setelah penggabungan, Anda dapat menerapkan kembali kata sandi pada PDF akhir menggunakan AddPasswordOptions.
import io
invoice_password = "Inv$2026"
output_password = "Bill$2026"
load_options = gm.domain.options.LoadOptions(invoice_password)
buffer = io.BytesIO()
# Open the protected invoice, join attachments, write to memory buffer
with gm.Merger(invoice, load_options) as merger:
for path in attachments:
merger.join(path)
merger.save(buffer)
# Re‑secure the merged document
add_pwd = gm.domain.options.AddPasswordOptions(output_password)
buffer.seek(0)
with gm.Merger(buffer) as merger:
merger.add_password(add_pwd)
merger.save(output)
Key points:
LoadOptionsmembuka kunci PDF sumber.- Hasil gabungan pertama‑tama ditulis ke aliran memori (
BytesIO). AddPasswordOptionsmenerapkan kata sandi baru pada file akhir.
Step 4: Selecting Specific Pages from Attachments
Kadang‑kadang hanya sebagian lampiran yang relevan (misalnya dua halaman pertama dari laporan layanan yang panjang). Gunakan PageJoinOptions untuk menentukan rentang inklusif berbasis 1.
page_picks = [
("service_report.pdf", 1, 2), # Include pages 1‑2 only
("terms_and_conditions.pdf", 3, 3) # Include only page 3
]
output = "billing_selected_pages.pdf"
with gm.Merger(invoice) as merger:
for path, first, last in page_picks:
options = gm.domain.options.PageJoinOptions(first, last)
merger.join(path, options)
merger.save(output)
Result: PDF akhir berisi faktur plus hanya halaman‑halaman yang dipilih, sehingga paket tetap ringan.
Full Example
Contoh lengkap yang berfungsi, termasuk semua file sumber dan dokumen contoh, tersedia di GitHub: billing-consolidator-demo-using-groupdocs-merger-python.
Best Practices & Tips
- Performance: Untuk batch besar, aktifkan hanya opsi yang diperlukan (misalnya hindari konversi format yang tidak diperlukan).
- Memory Management: Selalu gunakan pernyataan
withuntuk memastikan Merger melepaskan sumber daya dengan cepat. - Security: Terapkan kembali enkripsi setelah penggabungan untuk menjaga kerahasiaan faktur asli.
- File Limits: GroupDocs.Merger mendukung PDF hingga 2 GB; file yang lebih besar mungkin memerlukan pemecahan sebelum digabungkan.
Conclusion
GroupDocs.Merger untuk Python menyediakan API yang sederhana untuk mengubah sekumpulan dokumen penagihan yang tersebar menjadi satu paket PDF profesional. Baik Anda berurusan dengan PDF biasa, media campuran, faktur yang dilindungi kata sandi, atau perlu memangkas lampiran ke halaman esensial, perpustakaan ini menangani pekerjaan berat dalam beberapa baris kode saja.
Next steps:
- Jelajahi daftar lengkap format yang didukung dalam documentation.
- Pelajari cara menambahkan watermark atau tanda tangan digital ke PDF yang digabung (API reference).
- Lihat proyek contoh di GitHub untuk skenario yang lebih maju (Examples Repo).