Introduction
Factuurconsolidatie is een workflow die meerdere financiële documenten combineert tot één enkele PDF met behulp van GroupDocs.Merger voor Python. Financieteams moeten vaak een factuur samen met leveringsbonnen, service‑rapporten en garantievoorwaarden versturen, maar handmatig bestanden aan elkaar plakken leidt tot fouten en kost tijd. GroupDocs.Merger automatiseert dit proces, zorgt ervoor dat elke bijlage correct geordend is, eventueel beveiligd wordt, en geleverd wordt als één nette PDF.
In deze tutorial zie je hoe je:
- Een gewone PDF‑factuur kunt samenvoegen met een willekeurig aantal ondersteunende bestanden.
- Gemengde formaten zoals JPG‑afbeeldingen en DOCX‑contracten kunt verwerken.
- Een met wachtwoord beveiligde factuur kunt openen, bijlagen kunt toevoegen en de encryptie opnieuw kunt toepassen.
- Alleen geselecteerde pagina’s uit grote bijlagen kunt opnemen om het uiteindelijke pakket compact te houden.
Ik kwam dit exacte scenario tegen in het vorige kwartaal toen ons boekhoudsysteem een met wachtwoord beveiligde factuur genereerde en het juridische team een meer‑pagina‑garantie‑DOCX toevoegde. De onderstaande code loste het op in minder dan vijf minuten.
When does it make sense to merge a password‑protected invoice with other documents?
Veel bedrijven versleutelen facturen in rust om te voldoen aan compliance‑eisen. Wanneer de factuur naar een klant moet worden gestuurd samen met onbeschermde bijlagen (bonnen, voorwaarden, afbeeldingen), moet het oorspronkelijke wachtwoord worden verwijderd voor het samenvoegen en vervolgens opnieuw worden toegepast op het uiteindelijke pakket. GroupDocs.Merger laat je het ontgrendelingswachtwoord opgeven via LoadOptions, de extra bestanden samenvoegen, en tenslotte de samengevoegde PDF beveiligen met AddPasswordOptions. Zo blijft de vertrouwelijkheidspositie behouden terwijl je één gemakkelijk te openen document levert.
Prerequisites
- Python 3.8+ (via .NET‑bridge)
- GroupDocs.Merger for Python – install with:
pip install groupdocs-merger
- Een hoofd‑factuur‑PDF (
invoice.pdf) en een lijst met pad‑namen van bijlagen. - (Optioneel) Wachtwoorden voor de bron‑factuur en de uitvoer‑PDF.
Step 1: Basic Consolidation of PDF Attachments
Het eenvoudigste geval is het samenvoegen van een PDF‑factuur met andere PDF‑s, afbeeldingen of Word‑bestanden. De API converteert niet‑PDF‑invoer automatisch naar PDF voordat ze worden samengevoegd.
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.Mergerwordt geïnstantieerd met het host‑document (de factuur).join()accepteert elk ondersteund formaat; de bibliotheek verzorgt de conversie.save()schrijft de samengevoegde PDF naar het opgegeven pad.
Step 2: Consolidating Mixed‑Format Attachments
In de praktijk bevatten factuurpakketten vaak gescande afbeeldingen (JPG) en juridische contracten (DOCX). Dezelfde code werkt omdat GroupDocs.Merger elke bijlage on‑the‑fly normaliseert naar PDF.
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: Alles naar PDF converteren elimineert de noodzaak voor de ontvanger om met meerdere viewers te jongleren, waardoor een naadloze ervaring ontstaat.
Step 3: Handling Password‑Protected Invoices
Als de factuur versleuteld is, geef je het wachtwoord op via LoadOptions. Na het samenvoegen kun je een wachtwoord toepassen op de uiteindelijke PDF met 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:
LoadOptionsontgrendelt de bron‑PDF.- Het samengevoegde resultaat wordt eerst naar een in‑memory stream (
BytesIO) geschreven. AddPasswordOptionspast een nieuw wachtwoord toe op het uiteindelijke bestand.
Step 4: Selecting Specific Pages from Attachments
Soms is alleen een deel van een bijlage relevant (bijv. de eerste twee pagina’s van een lang service‑rapport). Gebruik PageJoinOptions om een inclusieve 1‑gebaseerde bereik op te geven.
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: De uiteindelijke PDF bevat de factuur plus alleen de gekozen pagina’s, waardoor het pakket licht blijft.
Full Example
Het volledige werkende voorbeeld, inclusief alle bronbestanden en voorbeeld‑documenten, is beschikbaar op GitHub: billing-consolidator-demo-using-groupdocs-merger-python.
Best Practices & Tips
- Performance: Schakel voor grote batches alleen de opties in die je nodig hebt (bijv. vermijd onnodige formaatconversie).
- Memory Management: Gebruik altijd de
with‑statement zodat de Merger bronnen direct vrijgeeft. - Security: Pas encryptie opnieuw toe na het samenvoegen om de vertrouwelijkheid van de originele factuur te behouden.
- File Limits: GroupDocs.Merger ondersteunt PDF‑bestanden tot 2 GB; grotere bestanden moeten mogelijk eerst worden opgesplitst.
Conclusion
GroupDocs.Merger for Python biedt een eenvoudige API om een verspreide set factuur‑documenten om te zetten in één professioneel PDF‑pakket. Of je nu werkt met gewone PDF‑s, gemengde media, met wachtwoord beveiligde facturen, of alleen essentiële pagina’s uit bijlagen wilt opnemen, de bibliotheek doet het zware werk in slechts een paar regels code.
Next steps:
- Verken de volledige lijst van ondersteunde formaten in de documentation.
- Leer hoe je watermerken of digitale handtekeningen kunt toevoegen aan de samengevoegde PDF (API reference).
- Bekijk de voorbeeldprojecten op GitHub voor meer geavanceerde scenario’s (Examples Repo).