Einführung
Die Konsolidierung von Rechnungen ist ein Workflow, der mehrere Finanzdokumente zu einer einzigen PDF mit GroupDocs.Merger für Python kombiniert. Finanzteams müssen häufig eine Rechnung zusammen mit Lieferscheinen, Serviceberichten und Garantiebedingungen versenden, aber das manuelle Zusammenfügen von Dateien führt zu Fehlern und kostet Zeit. GroupDocs.Merger automatisiert diesen Prozess, sorgt dafür, dass jede Anlage in der richtigen Reihenfolge eingefügt wird, optional gesichert ist und als ein sauberes PDF ausgeliefert wird.
In diesem Tutorial sehen Sie, wie Sie:
- Eine reine PDF‑Rechnung mit einer beliebigen Anzahl von Begleitdateien zusammenführen.
- Gemischte Formate wie JPG‑Bilder und DOCX‑Verträge verarbeiten.
- Eine passwortgeschützte Rechnung öffnen, Anhänge hinzufügen und die Verschlüsselung erneut anwenden.
- Nur ausgewählte Seiten aus großen Anhängen einbinden, um das Endpaket kompakt zu halten.
Ich bin im letzten Quartal genau auf dieses Szenario gestoßen, als unser Buchhaltungssystem eine passwortgeschützte Rechnung erzeugte und die Rechtsabteilung ein mehrseitiges Garantie‑DOCX hinzufügte. Der untenstehende Code löste das Problem in weniger als fünf Minuten.
Wann macht es Sinn, eine passwortgeschützte Rechnung mit anderen Dokumenten zu verbinden?
Viele Unternehmen verschlüsseln Rechnungen im Ruhezustand, um Compliance‑Anforderungen zu erfüllen. Wenn die Rechnung zusammen mit ungeschützten Anhängen (Quittungen, Bedingungen, Bilder) an einen Kunden gesendet werden muss, muss das ursprüngliche Passwort zum Zusammenführen entfernt und anschließend wieder auf das finale Paket angewendet werden. GroupDocs.Merger ermöglicht es, das Entsperr‑Passwort über LoadOptions zu übergeben, die zusätzlichen Dateien zu verbinden und schließlich das zusammengeführte PDF mit AddPasswordOptions zu schützen. So bleibt die Vertraulichkeit erhalten, während ein einziges, leicht zu öffnendes Dokument bereitgestellt wird.
Voraussetzungen
- Python 3.8+ (via .NET‑Bridge)
- GroupDocs.Merger für Python – Installation mit:
pip install groupdocs-merger
- Eine Haupt‑Rechnungs‑PDF (
invoice.pdf) und eine Liste von Anhangspfaden. - (Optional) Passwörter für die Quell‑Rechnung und das Ausgabe‑PDF.
Schritt 1: Grundlegende Konsolidierung von PDF‑Anlagen
Der einfachste Fall ist das Zusammenführen einer PDF‑Rechnung mit anderen PDFs, Bildern oder Word‑Dateien. Die API konvertiert nicht‑PDF‑Eingaben automatisch zu PDF, bevor sie angehängt werden.
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.Mergerwird mit dem Host‑Dokument (der Rechnung) instanziiert.join()akzeptiert jedes unterstützte Format; die Bibliothek übernimmt die Konvertierung.save()schreibt das zusammengeführte PDF an den angegebenen Pfad.
Schritt 2: Konsolidierung von Anlagen mit gemischten Formaten
In der Praxis enthalten Rechnungspakete häufig gescannte Bilder (JPG) und Rechtsverträge (DOCX). Der gleiche Code funktioniert, weil GroupDocs.Merger jede Anlage on‑the‑fly zu PDF normalisiert.
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: Durch die Konvertierung alles in PDF entfällt die Notwendigkeit, dass der Empfänger mehrere Viewer verwenden muss – ein nahtloses Erlebnis.
Schritt 3: Umgang mit passwortgeschützten Rechnungen
Ist die Rechnung verschlüsselt, geben Sie das Passwort über LoadOptions an. Nach dem Zusammenführen können Sie mit AddPasswordOptions ein neues Passwort für das finale PDF setzen.
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:
LoadOptionsentsperrt das Quell‑PDF.- Das zusammengeführte Ergebnis wird zunächst in einen In‑Memory‑Stream (
BytesIO) geschrieben. AddPasswordOptionswendet ein neues Passwort auf die Enddatei an.
Schritt 4: Auswahl bestimmter Seiten aus Anlagen
Manchmal ist nur ein Teil einer Anlage relevant (z. B. die ersten beiden Seiten eines langen Serviceberichts). Verwenden Sie PageJoinOptions, um einen inklusiven 1‑basierten Bereich anzugeben.
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: Das finale PDF enthält die Rechnung plus nur die ausgewählten Seiten, wodurch das Paket leichtgewichtig bleibt.
Vollständiges Beispiel
Das komplette, funktionierende Beispiel inklusive aller Quelldateien und Beispieldokumente ist auf GitHub verfügbar: billing-consolidator-demo-using-groupdocs-merger-python.
Best Practices & Tipps
- Performance: Für große Stapel nur die Optionen aktivieren, die Sie benötigen (z. B. unnötige Formatkonvertierung vermeiden).
- Speicherverwaltung: Immer die
with‑Anweisung verwenden, damit der Merger Ressourcen zeitnah freigibt. - Sicherheit: Nach dem Zusammenführen die Verschlüsselung erneut anwenden, um die Vertraulichkeit der Original‑Rechnung zu wahren.
- Dateigrößen‑Grenzen: GroupDocs.Merger unterstützt PDFs bis zu 2 GB; größere Dateien müssen ggf. vor dem Zusammenführen gesplittet werden.
Fazit
GroupDocs.Merger für Python bietet eine unkomplizierte API, um ein verstreutes Set von Rechnungsdokumenten in ein einziges, professionelles PDF‑Paket zu verwandeln. Egal, ob Sie reine PDFs, gemischte Medien,