Intentionally Corrupt: Truncated PDF
An intentionally corrupt PDF, truncated to 60% of its bytes, for testing how a PDF parser handles a damaged file. Not a valid document by design.
application/pdf
- Corruption
- truncated to 60% of bytes
- Intentionally Corrupt
- true
Binary pdf: no in-browser preview. Download it above to open in a compatible application.
Specifications
- Corruption
- truncated to 60% of bytes
- Intentionally Corrupt
- true
Testing contract
Expected to fail- Scenario
- Exercise Intentionally Corrupt: Truncated PDF in its pdf workflow. An intentionally corrupt PDF, truncated to 60% of its bytes, for testing how a PDF parser handles a damaged file.
- Expected result
- Report the intended validation failure (truncated to 60% of bytes); never silently treat it as a conforming input. the structural probe reports PdfStreamError; evaluate the documented feature or defect with its format-specific reader. Declared feature checks: corruption=truncated to 60% of bytes; intentionallyCorrupt=True.
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
“Intentionally Corrupt: Truncated PDF” is a deterministic Testaroo fixture for Error handling, PDF editor testing. Deliberately corrupt and invalid files, clearly labelled, for testing how your tool fails.
Documented properties for this file: intentionally corrupt. 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.
Code examples
import pdfplumber # pip install pdfplumber
with pdfplumber.open("truncated.pdf") as pdf:
print(len(pdf.pages), "pages")
print(pdf.pages[0].extract_text())Generated by generation/docs_pdf.py. Free for any use, no attribution required, license.
Related files
- pdfAlder Table Bistro: Credit note PDFCredit note PDF for Alder Table Bistro. Credit note CN-BST-7002 dated 2026-08-29 against invoice INV-BST-5004 dated 2026-08-28: 5 l at 7.79, net 38.95 and 40.90 CAD including GST. Goods-received note GRN-BST-2004 records only 3 units returned, so the credit is 2 units too large.

- pdfAlder Table Bistro: Statement of account PDFStatement of account PDF for Alder Table Bistro. Statement STM-BST-6002 for Harbour Food Supply at 2026-08-31: 8 transactions closing at 1559.75 CAD. The printed ageing analysis totals 1566.76 CAD, which is 7.01 CAD more, because credit note CN-BST-7001 is listed in the transactions but was never applied to the buckets.

- pdfAlder Table Bistro: Supplier invoice PDFSupplier invoice PDF for Alder Table Bistro. Invoice INV-BST-5002 dated 2026-08-14, due 2026-09-13: 3 lines, net 313.84, GST 15.69 and 329.53 CAD due. Line 2 bills the ordered quantity even though the goods-received note records a short delivery of 4 kg.

- pdfAlder Table Bistro: Supplier invoice PDF reusing an invoice numberSupplier invoice PDF reusing an invoice number for Alder Table Bistro. A second document issued under invoice number INV-BST-5002, dated 2026-08-17 with 2 lines totalling 294.46 CAD. The first document of that number is dated 2026-08-14 with 3 lines totalling 329.53 CAD. Both are listed on statement STM-BST-6002 and both are inside its closing balance.

- pdfCedar Street Tacos: Credit note PDFCredit note PDF for Cedar Street Tacos. Credit note CN-TRK-7002 dated 2026-08-29 against invoice INV-TRK-5004 dated 2026-08-28: 5 each at 0.21, net 1.05 and 1.10 CAD including GST. Goods-received note GRN-TRK-2004 records only 3 units returned, so the credit is 2 units too large.

- pdfCedar Street Tacos: Statement of account PDFStatement of account PDF for Cedar Street Tacos. Statement STM-TRK-6002 for Harbour Food Supply at 2026-08-31: 8 transactions closing at 472.24 CAD. The printed ageing analysis totals 481.61 CAD, which is 9.37 CAD more, because credit note CN-TRK-7001 is listed in the transactions but was never applied to the buckets.
