Úvod
Konsolidace fakturace je workflow, který kombinuje více finančních dokumentů do jediného PDF pomocí GroupDocs.Merger pro Python. Finanční týmy často potřebují odeslat fakturu spolu s dodacími listy, servisními zprávami a podmínkami záruky, ale ruční spojování souborů způsobuje chyby a plýtvá časem. GroupDocs.Merger tento proces automatizuje, zajišťuje správné pořadí každé přílohy, volitelně ji zabezpečí a doručí jako jeden čistý PDF.
V tomto tutoriálu uvidíte, jak:
- Sloučit prostý PDF fakturu s libovolným počtem podpůrných souborů.
- Zpracovat smíšené formáty, jako jsou JPG obrázky a DOCX smlouvy.
- Otevřít heslem chráněnou fakturu, přidat přílohy a znovu použít šifrování.
- Zahrnout pouze vybrané stránky z velkých příloh, aby byl finální balíček kompaktní.
Setkal jsem se s touto situací minulý čtvrtletí, když náš účetní systém vygeneroval fakturu chráněnou heslem a právní tým přidal více stránek dlouhý DOCX záruky. Níže uvedený kód to vyřešil během méně než pěti minut.
Kdy má smysl sloučit heslem chráněnou fakturu s dalšími dokumenty?
Mnoho firem šifruje faktury v klidu, aby splnily požadavky na shodu. Když je faktura potřeba poslat zákazníkovi spolu s nechráněnými přílohami (účtenky, podmínky, obrázky), je nutné původní heslo odstranit pro sloučení a poté jej znovu aplikovat na finální balíček. GroupDocs.Merger vám umožní zadat odemykací heslo pomocí LoadOptions, připojit další soubory a nakonec chránit sloučené PDF pomocí AddPasswordOptions. Tím se zachová důvěrnost a zároveň se doručí jeden snadno otevíratelný dokument.
Předpoklady
- Python 3.8+ (přes .NET bridge)
- GroupDocs.Merger pro Python – nainstalujte pomocí:
pip install groupdocs-merger
- PDF faktura (
invoice.pdf) a seznam cest k souborům příloh. - (Volitelné) Hesla pro zdrojovou fakturu a výstupní PDF.
Krok 1: Základní konsolidace PDF příloh
Nejjednodušší případ je sloučení PDF faktury s dalšími PDF, obrázky nebo Word soubory. API automaticky převádí ne‑PDF vstupy na PDF před spojením.
import groupdocs_merger as gm
# Cesty ke zdrojovým souborům
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) # Normalizuje každý soubor na PDF a připojí jej
merger.save(output)
Klíčové body:
gm.Mergerje vytvořen s hostitelským dokumentem (fakturou).join()přijímá jakýkoli podporovaný formát; knihovna se postará o konverzi.save()zapíše sloučené PDF na zadanou cestu.
Krok 2: Konsolidace příloh smíšených formátů
Reálné balíčky faktur často obsahují naskenované obrázky (JPG) a právní smlouvy (DOCX). Stejný kód funguje, protože GroupDocs.Merger normalizuje každou přílohu na PDF za běhu.
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 a DOCX jsou automaticky převedeny na PDF
merger.save(output)
Proč je to důležité: Převod všeho na PDF eliminuje potřebu, aby příjemce používal více prohlížečů, a poskytuje plynulý zážitek.
Krok 3: Práce s heslem chráněnými fakturami
Pokud je faktura šifrována, zadejte heslo pomocí LoadOptions. Po sloučení můžete na finální PDF znovu aplikovat heslo pomocí AddPasswordOptions.
import io
invoice_password = "Inv$2026"
output_password = "Bill$2026"
load_options = gm.domain.options.LoadOptions(invoice_password)
buffer = io.BytesIO()
# Otevřete chráněnou fakturu, připojte přílohy, zapište do paměťového bufferu
with gm.Merger(invoice, load_options) as merger:
for path in attachments:
merger.join(path)
merger.save(buffer)
# Znovu zabezpečte sloučený dokument
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)
Klíčové body:
LoadOptionsodemkne zdrojové PDF.- Výsledek sloučení se nejprve zapíše do paměťového proudu (
BytesIO). AddPasswordOptionsaplikuje nové heslo na finální soubor.
Krok 4: Výběr konkrétních stránek z příloh
Někdy je relevantní jen podmnožina přílohy (např. první dvě stránky rozsáhlé servisní zprávy). Použijte PageJoinOptions k určení inkluzivního rozsahu založeného na 1‑based indexu.
page_picks = [
("service_report.pdf", 1, 2), # Zahrnout pouze stránky 1‑2
("terms_and_conditions.pdf", 3, 3) # Zahrnout jen stránku 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)
Výsledek: Finální PDF obsahuje fakturu plus jen vybrané stránky, což udržuje balíček lehký.
Nejlepší postupy a tipy
- Výkon: Pro velké dávky povolujte jen ty možnosti, které skutečně potřebujete (např. vyhněte se zbytečným konverzím formátů).
- Správa paměti: Vždy používejte konstrukci
with, aby Merger uvolnil prostředky okamžitě. - Zabezpečení: Po sloučení znovu aplikujte šifrování, aby byla zachována důvěrnost původní faktury.
- Limity souborů: GroupDocs.Merger podporuje PDF až do 2 GB; větší soubory mohou vyžadovat rozdělení před sloučením.
Závěr
GroupDocs.Merger pro Python poskytuje jednoduché API, které promění rozptýlenou sadu fakturačních dokumentů na jeden profesionální PDF balíček. Ať už pracujete s prostými PDF, smíšenými médii, heslem chráněnými fakturami nebo potřebujete oříznout přílohy na podstatné stránky, knihovna provede těžkou práci během několika řádků kódu.
Další kroky:
- Prozkoumejte úplný seznam podporovaných formátů v [dokumentaci][DOCS_URL].
- Naučte se, jak přidat vodoznaky nebo digitální podpisy do sloučeného PDF ([API reference][API_REF_URL