Ú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.Merger je 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:

  • LoadOptions odemkne zdrojové PDF.
  • Výsledek sloučení se nejprve zapíše do paměťového proudu (BytesIO).
  • AddPasswordOptions aplikuje 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