TLPDF Trust Lab

Synthetic evidence · release v2.1.0

PDF claims, measured.

A public, privacy-safe compatibility corpus executed across independent rendering and extraction engines. Counts and hashes leave the lab; document content does not.

1.28.2PyMuPDF
0.11.10pdfplumber
5.13.0PDFium
0failed contracts

Cross-engine evidence

Corpus results

Page-count consensus is gated. Extraction counts and first-page pixel differences are published so renderer drift is reviewable instead of hidden.

passedforms

Forms

preserve or warn

  • forms
  • text
  • checkbox
  • dropdown
Page consensus
yes · {'pymupdf': 1, 'pdfplumber': 1, 'pdfium': 1}
Extracted chars
PyMuPDF 60 · pdfplumber 23
First-page render delta
0.904% above threshold 12
passedmixed-fonts

Mixed Fonts

preserve or warn

  • mixed_fonts
  • text
Page consensus
yes · {'pymupdf': 1, 'pdfplumber': 1, 'pdfium': 1}
Extracted chars
PyMuPDF 67 · pdfplumber 66
First-page render delta
0.353% above threshold 12
passedimage-scan

Image Scan

render and ocr optional

  • scan
  • image_only
Page consensus
yes · {'pymupdf': 1, 'pdfplumber': 1, 'pdfium': 1}
Extracted chars
PyMuPDF 0 · pdfplumber 0
First-page render delta
0.000% above threshold 12
passedlayers-transparency

Layers Transparency

preserve or warn

  • layers
  • transparency
  • vector
Page consensus
yes · {'pymupdf': 1, 'pdfplumber': 1, 'pdfium': 1}
Extracted chars
PyMuPDF 26 · pdfplumber 25
First-page render delta
0.230% above threshold 12
passedrotated-page

Rotated Page

preserve

  • rotation
Page consensus
yes · {'pymupdf': 1, 'pdfplumber': 1, 'pdfium': 1}
Extracted chars
PyMuPDF 35 · pdfplumber 34
First-page render delta
0.467% above threshold 12
passedbookmarks

Bookmarks

preserve or warn

  • bookmarks
  • reading_order
Page consensus
yes · {'pymupdf': 3, 'pdfplumber': 3, 'pdfium': 3}
Extracted chars
PyMuPDF 60 · pdfplumber 57
First-page render delta
0.133% above threshold 12
passedattachment

Attachment

preserve or warn

  • attachments
Page consensus
yes · {'pymupdf': 1, 'pdfplumber': 1, 'pdfium': 1}
Extracted chars
PyMuPDF 31 · pdfplumber 30
First-page render delta
0.179% above threshold 12
passedsigned

Signed

detect and warn before change

  • digital_signature
  • signature_field
  • incremental_integrity
Page consensus
yes · {'pymupdf': 1, 'pdfplumber': 1, 'pdfium': 1}
Extracted chars
PyMuPDF 48 · pdfplumber 42
First-page render delta
0.330% above threshold 12
passedmalformed

Malformed

reject safely

  • malformed_input

Malformed-input safety outcomes

  • pymupdf rejected
  • pdfplumber rejected
  • pdfium rejected

Integration contract

Versioned JSON schemas

Schema v1 remains stable within its major version. Additive or breaking changes publish a new path instead of silently changing existing consumers.

No moving baseline

Release history

Each published result names its app, corpus, schema, and three engine versions.

  1. v2.1.0passed · corpus 1.0.0