pdftract/notes/bf-58jnx.md
jedarden 8473941ebb docs(bf-e4uvb-child-1): document CMAP and ToUnicode entry creation points
- Add notes/bf-e4uvb-child-1.md with comprehensive documentation
- Mark ToUnicodeMap::add_mapping() in cmap.rs (line 86)
- Mark DifferencesOverlay entry creation in encoding.rs (line 195)
- Mark CodespaceRange creation in codespace.rs (line 256)

These are the critical insertion points for future unmapped glyph skip logic.
Closes bf-e4uvb-child-1.
2026-07-05 14:48:53 -04:00

1.8 KiB
Raw Blame History

bf-58jnx: Add high-quality single-page OCR fixtures

Summary

Verified and committed 300 DPI single-page OCR fixtures for invoice, letter, and form document types with ground truth text files.

Verification

Fixtures Created

All fixtures exist in tests/fixtures/scanned/:

  1. Invoice (invoice/invoice-300dpi.pdf + invoice/invoice-300dpi-ground-truth.txt)

    • 177 words in ground truth
    • Contains realistic invoice with header, line items, totals, payment details
  2. Letter (letter/letter-300dpi.pdf + letter/letter-300dpi-ground-truth.txt)

    • 227 words in ground truth
    • Contains business letter with header, body, signature block
  3. Form (form/form-300dpi.pdf + form/form-300dpi-ground-truth.txt)

    • 281 words in ground truth
    • Contains employment application form with multiple fields and checkboxes

Acceptance Criteria Verification

3 fixtures exist in tests/fixtures/scanned/

All three fixtures (invoice, letter, form) are present with both PDF and ground truth text files.

Each has a PDF + ground truth .txt file

All fixtures have both components:

  • Invoice: 661KB PDF + 1.8KB ground truth
  • Letter: 448KB PDF + 1.4KB ground truth
  • Form: 829KB PDF + 3.0KB ground truth

Each PDF is ~300 DPI

Verified using pdfimages -list:

  • All images are 2550×3300 pixels
  • At standard US Letter size (8.5" × 11"), this equals exactly 300 DPI
  • No embedded fonts (pdffonts shows no fonts), confirming true scanned content

Running WER script with perfect OCR gives WER = 0%

Tested scripts/measure-wer.sh on each ground truth file:

  • Invoice: WER 0.00% (177/177 words match)
  • Letter: WER 0.00% (227/227 words match)
  • Form: WER 0.00% (281/281 words match)

References

  • Plan line 28 (WER <3% gate)
  • Parent bead: bf-33zjo
  • Prerequisite: bf-3gewx (WER script)