.NET 10 na Azure Linux: DOCX→PDF a merge pipeline

Publikováno: 2026-05-21

Krátká odpověď

Ano, technicky jsou možné obě pipeline:

  1. Pipeline A: více DOCX sloučit → výsledný DOCX převést do PDF
  2. Pipeline B: každý DOCX převést samostatně do PDF → výsledná PDF sloučit

Pro Azure/Linux/.NET 10 je jako výchozí architektura výrazně bezpečnější a provozně jednodušší Pipeline B.

Doporučení

Proč je Pipeline B obvykle lepší

Hlavní důvod: DOCX není fixed-layout formát. Je to balík XML částí, stylů, číslování, relací, sekcí, hlaviček/patiček, obrázků, poznámek, comments, tracked changes a fieldů. Slučování více DOCX s vysokou věrností je aplikačně výrazně složitější než následné sloučení PDF.

Pipeline B omezuje riziko tím, že:

Kdy dává smysl Pipeline A

Pipeline A dává smysl hlavně v edge-case scénářích:

Jinak je Pipeline A rizikovější.

1. Možnosti slučování více DOCX

1.1 Codeuctivity.OpenXmlPowerTools

Nejzajímavější FOSS varianta.

Plusy: - velmi dobrý kandidát pro server-side DOCX merge na .NET 10 / Linux - navazuje na známý DocumentBuilder přístup z OpenXmlPowerTools - čistě .NET, bez Office/COM - vhodné pro controlled / semi-controlled DOCX korpus

Mínusy: - stále je nutné otestovat reálné dokumenty - rizika: konflikty stylů, numbering IDs, sections, headers/footers, fields, TOC, tracked changes, comments, footnotes/endnotes, obrázky, altChunk - OpenXML knihovny typicky neobsahují plnohodnotný Word layout engine; upravují markup

Verdikt: - nejlepší open-source volba pro DOCX merge, pokud opravdu musíte mergovat DOCX před PDF

1.2 Raw Open XML SDK (DocumentFormat.OpenXml)

Plusy: - čistá MIT knihovna - kompatibilita s net10.0 - maximální kontrola

Mínusy: - není to hotový merge engine - naïve append body je nebezpečný - vysoká implementační i testovací složitost

Verdikt: - použít jen pokud máte velmi kontrolované šablony nebo vědomou investici do custom mergeru

1.3 OfficeIMO.Word

Plusy: - zajímavé pro generování/manipulaci s DOCX bez COM

Mínusy: - není to první volba pro high-fidelity arbitrary merge

Verdikt: - spíš controlled generation/composition než robustní merge cizích DOCX

1.4 Slabší fity

1.5 Komerční alternativa

Pokud chcete co nejmenší riziko a nepotřebujete FOSS-only stack, je často lepší vůbec DOCX nemergovat a jít rovnou Pipeline B. Pokud je merge DOCX business-critical, komerční Word engine typu Aspose.Words bývá bezpečnější než custom OpenXML merge.

2. Možnosti konverze DOCX → PDF na Azure Linux / .NET 10

2.1 Aspose.Words for .NET

Nejsilnější default kandidát.

Plusy: - vysoká věrnost Word renderingu - funguje bez Microsoft Office - dobře se hodí do worker/service architektury - vhodné i pro velké dávky

Mínusy: - licence / cena - je nutné pohlídat fonty, locale a image/font assets v Linux image

Verdikt: - primární doporučení pro produkční DOCX→PDF na Azure/Linux/.NET 10, pokud rozpočet dovolí

2.2 Syncfusion DocIO + DocIORenderer

Plusy: - .NET knihovny - vendor support - rozumná enterprise alternativa

Mínusy: - nutnost POC nad vlastním korpusem - licence / cena

Verdikt: - shortlist alternativa vedle Aspose

2.3 GemBox.Document / GroupDocs / další komerční SDK

Verdikt: - vhodné do vendor bake-off / POC, pokud chcete porovnat cenu a přesnost na vlastních dokumentech

2.4 LibreOffice headless

Nejlepší open-source fallback / cost-sensitive varianta.

Plusy: - bez licenčních poplatků za renderer - prakticky použitelné - vhodné jako isolated worker / sidecar / batch conversion worker

Mínusy: - vyšší provozní režie než pure .NET SDK - cold start, procesní overhead, citlivost na profily/locking/fonty - méně elegantní aplikační integrace než pure library - pro vysokou paralelizaci je vhodná izolace per worker/process/pod

Verdikt: - velmi dobrý open-source fallback nebo primary path tam, kde je cena důležitější než nejvyšší kvalita a ergonomie

2.5 Microsoft Graph / OneDrive / SharePoint conversion

Plusy: - využití Microsoft 365 ekosystému - nemusíte hostovat rendering engine sami

Mínusy: - asynchronní/cloud orchestrace - throttling, quota, latency, identity/tenant dependencies - dokumenty musí být v M365 workflow - méně vhodné pro low-latency backend conversion service

Verdikt: - jen pokud dokumenty už přirozeně žijí v Microsoft 365 a cloud workflow je žádoucí

2.6 Co nedělat

Nepoužívat server-side Office automation / COM Interop.

Microsoft výslovně upozorňuje na komplikace a nepodporovanost server-side/unattended Office Automation. Na Azure Linux to navíc ani není realistický provozní model.

3. Možnosti slučování více PDF

3.1 qpdf

Velmi silná volba pro merge hotových PDF souborů.

Plusy: - stabilní CLI nástroj - dobře zapadá do Linux worker pipeline - merge fixed-layout PDF je provozně jednoduchý - qpdf dokumentace řeší i merge velkého množství souborů a file handle strategii

Mínusy: - CLI integrace místo čisté .NET knihovny - pokud potřebujete pokročilé manipulace, forms, signing nebo compliance scénáře, může být lepší vyšší SDK

Verdikt: - výborný default pro Linux pipeline, pokud stačí merge/transformace na úrovni PDF

3.2 pdfunite / Poppler

Verdikt: - lehký open-source fallback, ale qpdf bývá univerzálnější a robustnější

3.3 Komerční PDF SDK

Příklady: - Aspose.PDF - iText Core - Syncfusion PDF Library - Docotic.Pdf - Apryse/PDFTron/Nutrient

Verdikt: - vhodné, pokud PDF merge není jen concat pages, ale součást širšího PDF workflow

4. Doporučený postup pro Azure/Linux/.NET 10

Doporučený default workflow

  1. Validace vstupu
  2. whitelist formátů
  3. kontrola velikosti a page/section complexity
  4. uložení originálů do blob storage / work storage

  5. Konverze každého DOCX izolovaně do PDF

  6. ideálně Aspose.Words
  7. fallback LibreOffice headless v odděleném workeru
  8. zachytit per-document telemetry a chyby

  9. Merge výsledných PDF

  10. qpdf nebo PDF SDK

  11. Post-processing

  12. metadata
  13. bookmarks/attachments, pokud jsou potřeba
  14. output validation

  15. Uložení výsledku a audit trail

  16. mapování input DOCX → output PDF pages / batch ID / conversion logs

Kdy přepnout na DOCX merge first

Pouze pokud business pravidla vyžadují:

Pak:

5. Doporučené knihovny/služby s plusy a mínusy

  1. Aspose.Words
  2. plusy: kvalita, stabilita, Linux/.NET fit, bez Office
  3. mínusy: licence, cena

  4. LibreOffice headless

  5. plusy: open-source, praktický fallback
  6. mínusy: vyšší provozní režie, potřeba izolace

  7. qpdf

  8. plusy: robustní PDF merge na Linuxu
  9. mínusy: CLI integrace, ne plnohodnotné PDF SDK

  10. Codeuctivity.OpenXmlPowerTools

  11. plusy: nejlepší FOSS kandidát pro DOCX merge před renderem
  12. mínusy: stále nutný POC a regression testy

  13. Syncfusion / GemBox / GroupDocs / iText / Aspose.PDF

  14. plusy: enterprise support a širší feature set
  15. mínusy: komerční licence a nutnost POC nad vlastním korpusem

Praktické rozhodnutí pro architekta

Varianta 1: nejnižší riziko v produkci

Varianta 2: open-source / nižší licence

Varianta 3: musíme mergovat DOCX před renderem

Rizika, která musíte otestovat

Bez ohledu na zvolenou variantu otestovat na reálném korpusu:

Finální doporučení

  1. Jako výchozí architekturu zvolit Pipeline B: každý DOCX převést samostatně do PDF a potom PDF sloučit.
  2. Pro nejvyšší kvalitu a nejnižší implementační riziko zvolit Aspose.Words jako primární renderer.
  3. Pro PDF merge použít qpdf, pokud stačí page-level merge; jinak komerční PDF SDK.
  4. LibreOffice headless držet jako open-source nebo fallback variantu v izolovaném workeru.
  5. DOCX merge před konverzí používat jen ve scénářích, kde business explicitně vyžaduje globální Word semantiku; tam je nejlepší FOSS kandidát Codeuctivity.OpenXmlPowerTools, ale pouze po POC a regression testech.
  6. Office automation / COM Interop na serveru nepoužívat.

Ověřené zdroje