Repository navigation
Description
Note
Safe-PDF's render differs from PDFium's on 2 pages in 2 documents.
| Signature | mismatch: extra_ink / image (RGBA8888, blend Normal) |
| Corpora | pdfium 1 failure in 1 document · pdfjs 1 failure in 1 document |
| Baseline | not in the baseline |
| Reference | PDFium libpdfium.so (sha256 f728930966f50365) |
| Context | pdf.js and WebKit agree with Safe-PDF on 0 of 2 failing pages |
| Latest run | workflow run at 9745c09 |
Example: issue9462 (pdfjs, page 2)
![]() PDFium | ![]() Safe-PDF | ![]() Difference | ![]() pdf.js |
Difference: red = ink missing in Safe-PDF, blue = extra ink, magenta = hue differs, orange = same hue, different shape. Click an image for the interactive viewer.
3.44% of pixels differ; ink coverage PDFium 17.73% vs Safe-PDF 22.98%.
| Region | Class | Annotation | Page space | Differing px | PDFium text | Safe-PDF text |
|---|---|---|---|---|---|---|
| 0 | extra_ink | [16, 717, 235, 776] | 24444 | — | — | |
| 1 | reshaped | [448, 77, 560, 152] | 3710 | symmetrical joints |
symmetrical joints |
|
| 2 | reshaped | [53, 72, 288, 179] | 2647 | PATTERN CONSIDERATIONS↵Backers and Dowels are 1/16" short of the module width. T |
PATTERN CONSIDERATIONSBackers and Dowels are 1/16" short of the module width. Th |
|
| 3 | reshaped | [416, 472, 533, 659] | 1614 | Interior Applications↵Other species are offered↵Zero VOC water-based 20% sheen ↵ |
Interior ApplicationsOther species are offeredZero VOC water-based 20% sheen cle |
Safe-PDF draw calls in the regions
- region 0: [conformance] Render differs: [web] missing_ink in image (RGBA8888) #670 image 1219x113 RGBA8888, blend Normal, matrix [920.05554, 0.0, 0.0, 81.375, 0.0, 26.998535] at [0, 27, 918, 108]
- region 1: Draw CalRGB image samples as RGB #636 fill
#FFFFFF, blend Normal, Winding at [675, 954, 837, 1057] - region 1: Snap solid filled rectangles to whole pixels #637 image 228x146 RGBA8888, blend Normal, matrix [163.93741, 0.0, 0.0, 105.29085, 674.0846, 952.94415] at [675, 954, 837, 1057]
- region 1: Reduce Flate decoding cost: reserve output capacity, use zlib-rs #655 fill
#272627, blend Normal, Winding at [728, 1065, 735, 1070] - region 1: Sample gradient stops on both sides of stitching bounds #656 fill
#272627, blend Normal, Winding at [736, 1065, 743, 1070] - region 1: [conformance] Render differs: [web] blank page #654 fill
#272627, blend Normal, Winding at [723, 1066, 728, 1072] - region 2: PageObject base implementation #8 fill
#5C3A62, blend Normal, Winding at [156, 921, 165, 930] - region 2: Xobject image support #18 fill
#5C3A62, blend Normal, Winding at [238, 921, 247, 930] - region 2: PDF content stream parser implementation #15 fill
#5C3A62, blend Normal, Winding at [217, 921, 225, 930] - region 2: #1 fill
#5C3A62, blend Normal, Winding at [88, 921, 97, 930] - region 2: #7 fill
#5C3A62, blend Normal, Winding at [146, 921, 154, 930]
Cases
| Case | Corpus | Pages | Mismatch | Baseline | Links |
|---|---|---|---|---|---|
issue9462 |
pdfjs | 2 | 3.44% | not in baseline | viewer · summary · PDF |
fx/other/1.pdf |
pdfium | 0 | 0.74% | not in baseline | viewer · summary · PDF |
Reproduce
In a checkout of Velli20/pdf-conformance whose safe-pdf links to your Safe-PDF checkout (ln -s <safe-pdf> safe-pdf):
Tip
Downloads only these PDFs and compares against the published PDFium images, so no local PDFium build is needed. For a corpus that is only read on main, it reruns the cases listed below without reference images, which still shows crashes, timeouts and errors:
cargo conformance repro conf2-9b11dae331eecargo conformance render <pdf> --page <n> renders one downloaded PDF and times each Safe-PDF step.
Done when
-
cargo conformance verify conf2-9b11dae331eeexits 0: no listed case fails with this signature - A unit test next to the fix covers the case
- The fixing pull request says
Fixes #<this issue>
For agents: machine-readable summary
{
"cases": [
{
"corpus": "pdfjs",
"id": "issue9462",
"mismatch": 0.03444484789800694,
"pages": [
2
],
"pdf": "https://github.com/mozilla/pdf.js/blob/df863ae9c48f6c44362622125288bd3de34e933f/test/pdfs/issue9462.pdf.link",
"run": "cargo conformance run --corpus pdfjs --case issue9462",
"summary": "https://velli20.github.io/pdf-conformance/pdfjs/cases/issue9462-6a36962d/summary.md"
},
{
"corpus": "pdfium",
"id": "fx/other/1.pdf",
"mismatch": 0.00735274152995672,
"pages": [
0
],
"pdf": "https://pdfium.googlesource.com/pdfium_tests/+/6a4136071608f159f45e274fed1b7d5f4272ca8f/fx/other/1.pdf",
"run": "cargo conformance run --corpus pdfium --case fx/other/1.pdf",
"summary": "https://velli20.github.io/pdf-conformance/pdfium/cases/fx_other_1.pdf-334097fd/summary.md"
}
],
"documents": 2,
"failures": 2,
"key": "conf2-9b11dae331ee",
"reproduce": "cargo conformance repro conf2-9b11dae331ee",
"signature": "mismatch: extra_ink / image (RGBA8888, blend Normal)",
"status": "mismatch",
"suspect": null,
"verify": "cargo conformance verify conf2-9b11dae331ee"
}Filed by the conformance workflow. Key conf2-9b11dae331ee. Close as not planned to stop updates. How to read the images and the workflow: README.md.




Activity
pdf-conformance commentedon Nov 3, 2026
New documents fail this way: pdfjs 0 → 1 documents in https://github.com/Velli20/pdf-conformance/actions/runs/41676038304.