Skip to content

ReflowPDF Engine and Prince 17, side by side

On the 20,465 web-platform tests both engines were judged on, ReflowPDF Engine passes 19,929 and Prince 17 passes 8,805. On 12 documents laid out to tagged PDF by both engines on one machine, ReflowPDF Engine was faster on 11, level on 1, and used less memory on 10; Prince 17 wrote the smaller file on 5 of 12. On the HTML Standard, 1,560 pages, ReflowPDF takes 36.6 s against 50.7 s, uses 183 MB less memory and writes a PDF 4.9 MB smaller.

The 20,465 web-platform tests both engines were judged on

97.4%

ReflowPDF Engine: 19,929 of 20,465 tests pass

43.0%

Prince 17: 8,805 of 20,465 tests pass

29,323
files ReflowPDF is judged on
− 2,112
judged by their assertions; Prince 17 was not run on those
− 3,852
left out of Prince 17’s run because they run a script
− 2,875
not in Prince 17’s run (1,419 of them crash tests)
− 19
on which Prince 17 stopped with an error
20,465
judged by rendering in both engines

Counted over all its 29,323 files, ReflowPDF passes 27,676 (94.4%), the figure the Conformance page gives for the same run.

ReflowPDF EnginePrince 17

  • CSS 2 5,863 tests99% / 58%: ReflowPDF 5,786 and Prince 3,373 of 5,863
  • Grid 1,233 tests94% / 41%: ReflowPDF 1,158 and Prince 505 of 1,233
  • Text 1,205 tests96% / 36%: ReflowPDF 1,160 and Prince 435 of 1,205
  • Writing modes 1,101 tests98% / 12%: ReflowPDF 1,083 and Prince 135 of 1,101
  • Break 1,048 tests99% / 28%: ReflowPDF 1,039 and Prince 298 of 1,048
  • Flexbox 916 tests99% / 68%: ReflowPDF 906 and Prince 620 of 916
  • Transforms 705 tests99% / 41%: ReflowPDF 700 and Prince 289 of 705
  • Backgrounds 596 tests98% / 24%: ReflowPDF 583 and Prince 145 of 596
  • Sizing 513 tests99% / 26%: ReflowPDF 508 and Prince 132 of 513
  • Overflow 462 tests98% / 25%: ReflowPDF 453 and Prince 117 of 462
  • Multicol 403 tests97% / 28%: ReflowPDF 392 and Prince 113 of 403
  • Images 398 tests98% / 23%: ReflowPDF 389 and Prince 93 of 398
  • HTML 346 tests95% / 55%: ReflowPDF 329 and Prince 191 of 346
  • Fonts 327 tests98% / 58%: ReflowPDF 320 and Prince 191 of 327
  • Contain 305 tests99% / 34%: ReflowPDF 303 and Prince 103 of 305
  • WOFF2 fonts 298 tests98% / 91%: ReflowPDF 293 and Prince 271 of 298
  • Color 294 tests98% / 52%: ReflowPDF 289 and Prince 154 of 294
  • Text decor 282 tests98% / 28%: ReflowPDF 275 and Prince 79 of 282
  • Masking 280 tests93% / 15%: ReflowPDF 261 and Prince 43 of 280
  • Filter effects 271 tests99% / 25%: ReflowPDF 267 and Prince 67 of 271
  • Gaps 227 tests96% / 10%: ReflowPDF 219 and Prince 22 of 227
  • Counter styles 224 tests99% / 59%: ReflowPDF 222 and Prince 132 of 224
  • Shapes 224 tests96% / 5%: ReflowPDF 216 and Prince 12 of 224
  • Page 219 tests94% / 51%: ReflowPDF 206 and Prince 112 of 219
  • Variables 180 tests99% / 96%: ReflowPDF 178 and Prince 173 of 180
  • Values 166 tests96% / 58%: ReflowPDF 160 and Prince 96 of 166
  • SVG 165 tests93% / 43%: ReflowPDF 153 and Prince 71 of 165
  • MathML 150 tests94% / 59%: ReflowPDF 141 and Prince 89 of 150
  • Conditional 144 tests99% / 72%: ReflowPDF 142 and Prince 104 of 144
  • Inline 142 tests100% / 9%: ReflowPDF 142 and Prince 13 of 142

Areas with 140 tests or more; the rest are in the totals. Each engine renders a test and its reference, and the two renderings are compared. A tie of the two rasterisers counts as a failure for ReflowPDF, as it does on the Conformance page. ReflowPDF: engine 1d7a91105, run of 8 November 2026; Prince 17: run of 25 October 2026, with the same runner.

The web-platform tests are written by browser makers, for browsers; a print formatter is not built against them, and ours is worked through them test by test. The gap measures how closely each engine lays out CSS as the specifications say, not how good every print job will look. The Conformance page has every test.

Time to a finished PDF

ReflowPDF EnginePrince 17Chrome’s printSeconds, on a log scale. Within 10% either way counts as level: the runs were not simultaneous.

  • HTML Standard1.4× faster: ReflowPDF 36.6 s, Prince 50.7 s, Chrome 156.9 s
  • RFC 9110, HTTP Semantics1.5× faster: ReflowPDF 1.55 s, Prince 2.35 s, Chrome 5.46 s
  • GitHub repository page51.7× faster: ReflowPDF 4.76 s, Prince 246.0 s, Chrome 15.5 s
  • Stripe home page4.4× faster: ReflowPDF 1.59 s, Prince 6.92 s, Chrome 3.23 s
  • Tailwind CSS home page5.2× faster: ReflowPDF 2.58 s, Prince 13.3 s, Chrome 5.66 s
  • CSS Flexbox Level 11.6× faster: ReflowPDF 2.41 s, Prince 3.97 s, Chrome 7.38 s
  • Wikipedia: “PDF”1.8× faster: ReflowPDF 0.62 s, Prince 1.12 s, Chrome 1.91 s
  • Bootstrap 5.3 documentationLevel: ReflowPDF 0.35 s, Prince 0.37 s, Chrome 1.50 s

Synthetic test forms

  • Floats2.6× faster: ReflowPDF 0.10 s, Prince 0.26 s, Chrome 1.14 s
  • Flex cards1.4× faster: ReflowPDF 1.00 s, Prince 1.36 s, Chrome 3.33 s
  • Grid1.8× faster: ReflowPDF 0.57 s, Prince 1.05 s, Chrome 2.46 s
  • Article2.7× faster: ReflowPDF 0.56 s, Prince 1.53 s, Chrome 2.87 s

GitHub repository page: Prince takes unusually long on this one document; it is not a typical gap.

The HTML Standard, release by release

Each measured release of ReflowPDF Engine on the HTML Standard, without tags, on the same shared machine. The comparison with Prince 17 is the table above: both engines making tagged PDF.

  • 2026-11-04 p391 (6fde01550)60.0 s 1,369 MB
  • 2026-11-04 p39353.1 s 1,378 MB
  • 2026-11-04 p394 (8f523a5ec)57.7 s 1,378 MB
  • 2026-11-04 p400 (a31921d04)77.4 s 1,380 MB
  • 2026-11-05 p401 (92c5fbd49)47.0 s 1,379 MB
  • 2026-11-05 p411 (378ed37ee)42.6 s 1,368 MB
  • 2026-11-07 p419 (dff69f8c1)40.8 s 1,335 MB
  • 2026-11-08 p431 (7e30a4918)34.3 s 1,351 MB

Each release is measured without tags on the machine described under “How it was measured”. The machine is shared and its load differs from run to run, so neighbouring releases can differ by more than their code does.

And the browser’s own print

Many HTML-to-PDF services print with a browser: Chrome’s page.pdf, through Puppeteer or Playwright. It was measured on the same 12 documents, on the same machine, the way both engines run: a cold start for each document, tags on.

It was slower than ReflowPDF Engine on 12 of 12 and used more memory on 12. It writes a tag tree, but veraPDF passes none of its PDFs as PDF/UA-1. The three lay out some documents differently, so their page counts differ; the table has them.

Chrome’s memory is the peak of the summed PSS of all its processes. Its warm time, with the browser already running, is in the data beside the cold one.

Every number

DocumentTime, sReflowPDF / Prince / ChromePeak memory, MBReflowPDF / Prince / ChromeInstructions, billionsReflowPDF / Prince / ChromePDF, MBReflowPDF / Prince / Chrome
HTML StandardThe WHATWG HTML Living Standard, the whole specification as one document36.6 / 50.7 / 156.91,457 / 1,640 / 3,184140.6 / 263.8 / 311.215.83 / 20.75 / 98.56
RFC 9110, HTTP SemanticsAn IETF standard: long text, tables, cross-references1.55 / 2.35 / 5.46131 / 183 / 5616.7 / 10.3 / 19.10.92 / 1.18 / 4.20
GitHub repository pageThe rust-lang/rust repository page: deep nesting, many small boxes4.76 / 246.0 / 15.5191 / 223 / 95521.1 / 1,060.0 / 65.71.49 / 0.76 / 5.78
Stripe home pageA marketing page with grid and flex layout1.59 / 6.92 / 3.23124 / 115 / 4559.0 / 31.0 / 13.10.59 / 0.21 / 2.21
Tailwind CSS home pageA utility-class marketing page2.58 / 13.3 / 5.66153 / 143 / 47817.7 / 74.1 / 25.26.05 / 4.46 / 6.75
CSS Flexbox Level 1A W3C specification2.41 / 3.97 / 7.38198 / 205 / 65312.2 / 18.2 / 23.61.62 / 1.56 / 11.66
Wikipedia: “PDF”An encyclopedia article with infobox, references and images0.62 / 1.12 / 1.9179 / 104 / 3623.2 / 5.4 / 7.60.40 / 0.36 / 1.07
Bootstrap 5.3 documentationA documentation page0.35 / 0.37 / 1.5068 / 78 / 3281.4 / 1.4 / 6.20.10 / 0.14 / 0.23

Synthetic test forms

DocumentTime, sReflowPDF / Prince / ChromePeak memory, MBReflowPDF / Prince / ChromeInstructions, billionsReflowPDF / Prince / ChromePDF, MBReflowPDF / Prince / Chrome
FloatsSynthetic: text around floats0.10 / 0.26 / 1.1435 / 50 / 2340.3 / 0.6 / 5.10.04 / 0.05 / 0.11
Flex cardsSynthetic: cards in flex rows1.00 / 1.36 / 3.3392 / 113 / 4514.3 / 5.9 / 13.00.33 / 0.35 / 1.20
GridSynthetic: a CSS grid page0.57 / 1.05 / 2.4673 / 96 / 4193.0 / 4.7 / 9.90.24 / 0.24 / 1.17
ArticleSynthetic: a long article0.56 / 1.53 / 2.8792 / 114 / 3933.6 / 7.3 / 11.40.56 / 0.80 / 3.09

The HTML Standard: ReflowPDF 1,560 pages, a 15.8 MB PDF; Prince 1,565 pages, 20.8 MB. The data as JSON: /benchmarks/data.json.

Open the PDFs yourself

What ReflowPDF Engine made from each openly licensed document: the tagged PDF/UA-1 measured above, and the same document as PDF/A-3a and PDF/UA-2, each passed by veraPDF 1.30.2 for the standard it claims.

DocumentPDF/UA-1PDF/A-3aPDF/UA-2
HTML StandardSource, CC BY 4.0, WHATWGDownload 15.83 MBDownload 15.84 MBDownload 15.88 MB
RFC 9110, HTTP SemanticsSource, IETF Trust (RFCs may be reproduced in full)Download 0.92 MBDownload 0.92 MBDownload 0.93 MB
CSS Flexbox Level 1Source, W3C Document LicenseDownload 1.62 MBDownload 1.63 MBDownload 1.64 MB
Wikipedia: “PDF”Source, CC BY-SA 4.0, Wikipedia contributorsDownload 0.40 MBDownload 0.40 MBDownload 0.40 MB
Bootstrap 5.3 documentationSource, MIT and CC BY 3.0, Bootstrap authorsDownload 0.10 MBDownload 0.11 MBDownload 0.10 MB
FloatsMade for this test, its HTMLDownload 0.04 MBDownload 0.04 MBDownload 0.04 MB
Flex cardsMade for this test, its HTMLDownload 0.33 MBDownload 0.34 MBDownload 0.33 MB
GridMade for this test, its HTMLDownload 0.24 MBDownload 0.24 MBDownload 0.24 MB
ArticleMade for this test, its HTMLDownload 0.56 MBDownload 0.56 MBDownload 0.56 MB

Both engines made tagged PDF for the table above, so the sizes compare tagged with tagged: ReflowPDF Engine PDF/UA-1, Prince 17 with its PDF/UA-1 profile. veraPDF does not pass Prince 17’s files as PDF/UA-1, so they are not listed as such.

Documents from third-party sites that are not openly licensed (GitHub, Stripe, Tailwind CSS) are measured but not republished. The Wikipedia article is shared under CC BY-SA 4.0 by its contributors, the HTML Standard under CC BY 4.0 by WHATWG.

How it was measured

MachineIntel Xeon E5-2690, 2.9 GHz, 16 threads, 62 GB, Ubuntu 24.04 (a shared server; the clock speed varies)
ReflowPDFReflowPDF Engine 7e30a4918 (app release p431), release, command-line renderer, tagged PDF/UA-1, cold start, median of three runs (the HTML Standard: one run); measured 2026-11-08, load 3–9 (the HTML Standard: up to 9.7) (a shared machine)
PrincePrince 17; measured 2026-11-04, load 1.6–3.2
ChromeChromium 148.0.7778.96 (Playwright), headless, page.pdf with tagged: true, printBackground and preferCSSPageSize; a cold process per document (node, the browser and one page), median of three runs (the HTML Standard: one run); measured 2026-11-08, load 2.2–5.4 (a shared machine)
  • Time is wall-clock time from start to the PDF written; memory is the peak resident set size; instructions are the CPU instructions counted in user space over all threads, which depend far less on the machine’s load than time does.
  • Both engines make tagged PDF, as the product does: ReflowPDF PDF/UA-1 by default, Prince 17 with its PDF/UA-1 profile (veraPDF does not pass Prince 17’s files as PDF/UA-1). Each is the median of three cold runs (the HTML Standard and, for Prince, the GitHub page: one run). Prince 17 was run on 4 November on the same machine, ReflowPDF on 8 November: compare times as close, instructions as exact.
  • The documents are pages saved as single files, laid out without network and without scripts; both engines get the same file. They do not lay out every document identically, so the page counts differ.
  • PDF sizes compare tagged with tagged. The PDF/UA-1, PDF/A-3a and PDF/UA-2 files below, ReflowPDF Engine’s, are each checked with veraPDF 1.30.2.
  • Chrome’s print is the browser printing the page (Playwright’s page.pdf, tagged): its time is a cold start of the browser for each document, as both engines start cold; a warm browser’s time is given beside it. Its memory is the peak of the summed proportional set size (PSS) of all its processes — browser, renderer, GPU and utility — since one process’s peak would leave most of it out. veraPDF checks its PDFs as PDF/UA-1.
  • The four synthetic test forms are in English since 8 November (they had been set in Russian words): all three engines were measured on the new files that day, the same way; their HTML can be downloaded below.
  • The documents compare speed, memory and file size, not whether the two engines lay a page out the same way: that is what the web-platform tests above compare, and the Conformance page has every test.