Examine the no-mapping.pdf test fixture using PDF analysis tools: - pdfinfo: extracted metadata (1 page, 660 bytes, PDF 1.4, letter) - pdffonts: identified CustomNoMap Type 1 font with custom encoding - Documented structural findings for later reference Key finding: fixture uses custom encoding with no embedding, designed to test pdftract's handling of glyphs without standard Unicode mappings. Closes bf-4ozvw.
2.7 KiB
no-mapping.pdf Fixture Structure Analysis
Date: 2026-07-03
Bead: bf-4ozvw
Fixture Path: tests/fixtures/encoding/no-mapping.pdf
PDF Metadata (pdfinfo)
Custom Metadata: no
Metadata Stream: no
Tagged: no
UserProperties: no
Suspects: no
Form: none
JavaScript: no
Pages: 1
Encrypted: no
Page size: 612 x 792 pts (letter)
Page rot: 0
File size: 660 bytes
Optimized: no
PDF version: 1.4
Font and Encoding Information (pdffonts)
name type encoding emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
CustomNoMap Type 1 Custom no no no 5 0
Structural Findings
File Characteristics
- Size: Extremely small (660 bytes) — minimal fixture
- Pages: Single page document
- Format: PDF 1.4 (standard version)
- Page Size: US Letter (612 x 792 pts)
- Complexity: No JavaScript, forms, or metadata streams
Font Analysis
- Font Name:
CustomNoMap— descriptive name indicating purpose - Font Type: Type 1 (PostScript font)
- Encoding: Custom — this is the key characteristic
- Embedding: Not embedded (
emb: no) - Subsetting: Not subset (
sub: no) - Unicode: No Unicode mapping (
uni: no)
Key Observations
-
Custom Encoding Purpose: The fixture is specifically designed to test handling of custom font encodings that lack standard mappings to Unicode or other character sets.
-
Minimal Complexity: At 660 bytes, this is likely a handcrafted or programmatically generated PDF with minimal content, focused specifically on the encoding edge case.
-
No Font Embedding: The font is not embedded, meaning PDF readers would need to have access to the actual font file or rely on the encoding information provided.
-
Testing Utility: This fixture appears to be designed to test pdftract's handling of:
- Custom encodings that don't map to standard character sets
- Glyph-to-text extraction fallback strategies
- Error recovery when encoding mappings are unavailable
Technical Significance
This fixture is particularly valuable for testing:
- Font encoding edge cases
- Glyph recognition without standard mappings
- Error handling in the text extraction pipeline
- Fallback strategies when standard encoding tables (AGL, CJK, etc.) don't apply
Notes for Documentation
The fixture name "no-mapping" combined with the custom encoding suggests this is intentionally testing the case where pdftract must handle glyphs that have no direct mapping to readable text. This is a critical edge case for robust PDF text extraction.