We had a document pipeline in production that turned DOCX templates into PDFs. It ran on headless LibreOffice. It worked, most of the time, and every time it didn't, it failed in a way that was somebody's whole afternoon.

So we wrote our own: dxpdf, a single Rust binary that parses OOXML directly and renders with Skia. No Microsoft Office. No LibreOffice. No cloud API. This is the story of why we did that, what the architecture looks like, and the benchmark result that surprised us.

It's open source. Repo.

TL;DR

Headless LibreOffice is a great renderer and a miserable production dependency: it serializes conversions per profile, spawns processes that hang, needs per-worker profile directories, and quietly changes its output between versions.