Render report
Names each omission, approximation and font substitution with a location, a reason and a severity.
WolfRender - Rendering core for Office documents / A WolfSDK engine
WolfRender is the rendering core of WolfSDK. It paints Word, Excel, PowerPoint and PDF pages to PDF and page images, and names each omission, approximation and font substitution it detects.
One command
wolf render reads DOCX, XLSX, PPTX, PDF, ODT, ODS, ODP, DOC, XLS and PPT files and writes PDF, PNG, SVG, JPEG, TIFF or BMP. Page images are named <stem>-<n>.png, with the page number padded to the width of the page count, as pdftoppm does.
wolf render report.docx --to pdf --outdir out
wolf render report.docx --to png --outdir out --dpi 150
# out/report.pdf, out/report-1.png, out/report-2.png, ... and out/render-report.jsonReported losses
Every run writes a JSON receipt and a render report. Read the losses before you accept the output, instead of finding them on the page.
Names each omission, approximation and font substitution with a location, a reason and a severity.
An error-level loss marks the output partial and wolf render exits 1. Your code can refuse it, send it for review or accept it.
Records the input and output digests, the status and the exit category of the run.
Rendering measured against Office
In the wolf-v0.2.21 heldout-2026-10f receipt, Wolf has lower mean distance to Office's own PDFs than LibreOffice in DOCX, PPTX and XLSX, and matches Office's page count on 31 of 38 paired XLSX files. Review the per-document losses and unqualified boundaries below.
| Format | Documents | Wolf mean distance | LibreOffice mean distance | Wolf page counts match |
|---|---|---|---|---|
| DOCX | 42 | 0.088 | 0.203 | 39/42 |
| PPTX | 51 | 0.087 | 0.120 | 51/51 |
| XLSX | 38 | 0.161 | 0.335 | 31/38 |
wolf-v0.2.21, heldout-2026-10f, November 2, 2026: mean SSIM distance to Office's own PDF output, rounded to three decimals; lower is closer. The last column counts matching page counts. Receipt: evidence/ltg-l4-heldout-checkpoint-10f.json. The paired cohort has 42 DOCX, 51 PPTX and 38 XLSX documents; one XLSX native baseline is missing. There are 10 document losses against LibreOffice, 23 per-document SSIM regressions and a retained uk12 pagination regression. Scoring-helper identity and local-only declaration ordering remain unqualified. Native Office oracles were reused; this is a regression benchmark, not a blind test. Omission counts from older passes are not requalified, and no PDF-input ranking exists.
Shims first on PATH
When a script or an agent skill already calls soffice, pdftoppm, pdftotext, pdfinfo or pdfimages, run the wolf binary under those names and put that directory first on PATH. Anything outside the documented forms fails with a named error and a non-zero exit, and a shim never falls back to a real LibreOffice or Poppler binary.
export PATH="$PWD/wolf-shims:$PATH" # soffice, pdftoppm and pdfinfo are links to wolf
soffice --headless --convert-to pdf --outdir out report.docx
pdftoppm -png -r 150 out/report.pdf out/reportInside the core
The document engines parse their formats and lower each page into one display list. WolfRender owns everything after that: text, geometry, charts and painting are shared by every engine that lowers into it.
One page description that every engine lowers into and every backend paints.
Shaping, bidirectional text, line breaking and font fallback.
DrawingML preset geometry, and charts painted from a format-neutral chart model.
PDF, PNG and SVG painters behind one interface.
Deploy
Added to a public code-interpreter sandbox image in a local build, Wolf adds 48.4 MiB (30.7 MiB compressed). LibreOffice plus Poppler adds 357.9 MiB (135.7 MiB compressed). The whole image is 9.0% smaller with Wolf, 3,142.8 MiB against 3,452.4 MiB uncompressed, because the base image dominates.
| Install | Added, uncompressed | Added, compressed | Whole image, uncompressed |
|---|---|---|---|
| Wolf | 48.4 MiB | 30.7 MiB | 3,142.8 MiB |
| LibreOffice plus Poppler | 357.9 MiB | 135.7 MiB | 3,452.4 MiB |
The native command-line tool uses bundled fonts and declared directories. The compatibility shims default to system fonts, so pin fonts when you need repeatable output.
On an eight-input suite with fixed inputs, bundled fonts, clock, locale and seed, Wolf builds for those three platforms produced identical PDFs, PNGs, extracted text and render reports. A larger run found small JPEG decoding differences between macOS arm64 and Linux x86_64 in PDFs that contain JPEG images.
WolfRender has no standalone package or checkout of its own. It ships inside Wolf Runtime: Starter for small organizations is $4,999 a year online, and Internal is from $15,000 a year under a written Order. Start with the free evaluation on your own documents.