# issue9462: mismatch

- Signature: `mismatch: extra_ink / image (RGBA8888, blend Normal)` (unique to this document)
- Baseline: not in baseline
- File: `test/pdfs/issue9462.pdf`
- SHA-256: `c6b05236ee0749b8196a57c14ad922acf0cda8d89f7cbef747dd83254d18ac77`
- Corpus note: pdf.js eq test, linked file
- Reproduce: `cargo conformance run --corpus pdfjs --case issue9462`
- Reference: PDFium libpdfium.so (sha256 f728930966f50365) at 1.5 px/pt, page content only. Neither renderer draws annotations or form fields here.

## Read

Safe-PDF loaded 3 pages.
PDFium loaded 3 pages.

## Features

filter:FlateDecode ×159, font:TrueType ×19, font:Type1 ×1, font_program:FontFile2 ×15, font_program:FontFile3 ×1, image ×103, image:soft_mask ×2, optional_content ×1

Likely crates: pdf-document (optional content), pdf-filter, pdf-font, pdf-image

## Page 2: mismatch

- Signature: `mismatch: extra_ink / image (RGBA8888, blend Normal)` (unique to this document)
- Reproduce: `cargo conformance run --corpus pdfjs --case issue9462 --page 2`
- Safe-PDF render: record 165 ms; replay 44 ms; 3525 replayed commands; pattern and mask nesting 0
- Content streams reachable through resources, with cycles marked: [p2-streams.txt](p2-streams.txt)
- Mismatch 3.444% of pixels; mean |ΔRGB| 5.21; ink coverage reference 17.73% vs Safe-PDF 22.98%; 918 x 1188 px; 2692 Safe-PDF draw calls
- Context, Safe-PDF against: pdf.js 2.613%
- Images: [p2-ref.png](p2-ref.png), [p2-safe.png](p2-safe.png), [p2-diff.png](p2-diff.png), [p2-compare.png](p2-compare.png), [p2-region0.png](p2-region0.png), [p2-region1.png](p2-region1.png), [p2-region2.png](p2-region2.png), [p2-pdfjs.png](p2-pdfjs.png)
- Content stream: [p2-content.txt](p2-content.txt)

| # | class | annotation | pixels | page space | differing px | reference text | Safe-PDF text |
|---|---|---|---|---|---|---|---|
| 0 | extra_ink |  | [24, 24, 352, 112] | [16.0, 717.3, 234.7, 776.0] | 24444 | — | — |
| 1 | reshaped |  | [672, 960, 840, 1072] | [448.0, 77.3, 560.0, 152.0] | 3710 | `symmetrical joints` | `symmetrical joints` |
| 2 | reshaped |  | [80, 920, 432, 1080] | [53.3, 72.0, 288.0, 178.7] | 2647 | `PATTERN CONSIDERATIONS↵Backers and Dowels are 1/16" short of the module width. This allows for the↵backer to expand and contract. Each module is centered by the installer.↵Typically there is a 1/2" or 1" gap separating panel lengths, whi…` | `PATTERN CONSIDERATIONSBackers and Dowels are 1/16" short of the module width. This allows for thebacker to expand and contract. Each module is centered by the installer. Typically there is a 1/2" or 1" gap separating panel lengths, which al…` |
| 3 | reshaped |  | [624, 200, 800, 480] | [416.0, 472.0, 533.3, 658.7] | 1614 | `Interior Applications↵Other species are offered↵Zero VOC water-based 20% sheen ↵clear topcoat↵Custom stains available↵Class A fire-rated coating available↵Variable profile ↵5LB DENSITY CORE - VENEER ↵Interior Applications↵Extensive…` | `Interior ApplicationsOther species are offeredZero VOC water-based 20% sheen clear topcoatCustom stains availableClass A fire-rated coating availableVariable profile 5LB DENSITY CORE - VENEEInterior ApplicationsExtensive veneer selectionZer…` |
| 4 | reshaped |  | [480, 1008, 648, 1048] | [320.0, 93.3, 432.0, 120.0] | 1195 | — | — |
| 5 | reshaped |  | [80, 888, 840, 896] | [53.3, 194.7, 560.0, 200.0] | 757 | — | — |

Region 0 Safe-PDF draws:
- #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 Safe-PDF draws:
- #636 fill #FFFFFF, blend Normal, Winding at [675, 954, 837, 1057]
- #637 image 228x146 RGBA8888, blend Normal, matrix [163.93741, 0.0, 0.0, 105.29085, 674.0846, 952.94415] at [675, 954, 837, 1057]
- #655 fill #272627, blend Normal, Winding at [728, 1065, 735, 1070]
- #656 fill #272627, blend Normal, Winding at [736, 1065, 743, 1070]
- #654 fill #272627, blend Normal, Winding at [723, 1066, 728, 1072]
- #665 fill #272627, blend Normal, Winding at [773, 1065, 778, 1070]
- #657 fill #272627, blend Normal, Winding at [744, 1065, 748, 1070]
- #661 fill #272627, blend Normal, Winding at [757, 1065, 761, 1070]

Region 2 Safe-PDF draws:
- #8 fill #5C3A62, blend Normal, Winding at [156, 921, 165, 930]
- #18 fill #5C3A62, blend Normal, Winding at [238, 921, 247, 930]
- #15 fill #5C3A62, blend Normal, Winding at [217, 921, 225, 930]
- #1 fill #5C3A62, blend Normal, Winding at [88, 921, 97, 930]
- #7 fill #5C3A62, blend Normal, Winding at [146, 921, 154, 930]
- #12 fill #5C3A62, blend Normal, Winding at [190, 921, 198, 930]
- #6 fill #5C3A62, blend Normal, Winding at [131, 921, 139, 930]
- #9 fill #5C3A62, blend Normal, Winding at [167, 921, 175, 930]

## Legend

- `pN-compare.png`: reference | Safe-PDF | diff. Diff colors: red = ink missing in Safe-PDF, blue = extra ink in Safe-PDF, magenta = hue differs, orange = same hue but different intensity (shape), yellow = anti-aliasing or 1 px displacement (tolerated), pale blue hatching = annotation area (not compared), gray = matching.
- Region classes: missing_ink / extra_ink = one renderer drew nothing there; color_shift = same shapes, different color; reshaped = both drew but glyph shapes or geometry differ (often font substitution); offset = same content shifted by a few pixels.
- `pN-regionK.png`: reference | Safe-PDF crops of region K, enlarged.
- Region pixels are `[x0, y0, x1, y1]` from the top-left. Page space is PDF user space `[left, bottom, right, top]`.
- Draw `#n` is the n-th Safe-PDF backend call on the page. Bounds are device pixels after clipping, and draws are listed tightest fit first.
- `pN-content.txt` lists the page's content stream operators. `report.json` has full backtraces and worker stderr.
