Skip to content
Novus Examples
pdf57.1 KB

Store Receipt — Scanned (image-only PDF)

The same café receipt as an image-only 'scan' — no text layer, with a slight rotation and grain so it reads like a photographed receipt. Paired with the searchable version as OCR ground truth.

Rendered preview of Store Receipt — Scanned (image-only PDF)

Rendered preview of the pdf file (57.1 KB). Download above for the original.

Specifications

Type
receipt
Text Layer
false
Artefacts
slight rotation + grain
Twin
searchable

What is a .pdf file?

PDF (Portable Document Format) is a page-oriented format that fixes layout, fonts, and vector and raster graphics so a page renders identically anywhere. A `%PDF-` header is followed by numbered objects, a cross-reference table mapping each to a byte offset, and a trailer; edits append incremental updates rather than rewrite the file. Page content is a stream of drawing operators, so a PDF holds no words or paragraphs, only positioned glyph runs. Adobe released it in 1993 and gave it to ISO as ISO 32000-1 in 2008.

How to use this file

Use an example PDF to test text extraction, rendering, metadata parsing, AcroForm handling, and OCR pipelines — checking that extraction reconstructs reading order from glyph positions, that a scanned page yields no text, and that an incremental update leaves earlier revisions in the file.

How to use this file for testing

“Store Receipt — Scanned (image-only PDF)” is a deterministic Novus Examples fixture for OCR testing, PDF editor testing. Image-only 'scanned' documents paired with their text source, for measuring OCR accuracy against a known ground truth.

Documented properties for this file: receipt. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.

Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.

Document fixtures list their internal structure (pages, fields, tracked changes, embedded objects) in the spec table. Test extractors, converters, and OCR against that known structure, and compare searchable↔scanned or format-twin companions when present.

Run OCR on the scanned or image twin and score the output against the searchable or text ground truth on this page; the documented rotation, grain, and text content are the reference.

Code examples

import pdfplumber  # pip install pdfplumber

with pdfplumber.open("receipt-scan.pdf") as pdf:
    print(len(pdf.pages), "pages")
    print(pdf.pages[0].extract_text())

Generated by generation/docs_advanced.py. Free for any use, no attribution required — license.