AI Demos Research — the structured-intelligence platform. Every verdict on these pages opens to the execution behind it.
Graded 26 October 2026

Does PyMuPDF4LLM process a scanned page inside a mixed PDF?

PyMuPDF4LLM passed this mixed-PDF scenario: the scanned page was OCR'd and kept between the surrounding digital pages. The worksheet values were recovered, and one OCR sentence is visibly garbled without the page being skipped.

1 of 1 test case passed

Every test case in this scenario has a result.

Pass rate100%1 of 1 gradable
Coverage1 of 1test case with a result
1PassDid everything it was expected to do.
0FailNo test case failed.
0Not gradableEvery result here could be graded.
0UntestedEvery test case in this scenario has a result.
The pass rate is a summary. The evidence is the test case below: what we sent, what we checked, what the tool returned, and the proof.

The test case

Each test case is judged on its own: Pass, Fail, Not gradable, or Untested. The scenario result above is based on this test case.

Mixed pages — scanned page not skippedPassEvidence
What we sent
InputDocument (PDF)
Source PDF with a scanned middle page
Open the PDF ↗
What the tool returned
Markdown
Job KAL-ESR-4471 

Kirkhollow Analytical Laboratories Ltd 

## **Equipment service report** 

##### **CLIENT** 

Braithe Estuary Partnership Estuary House, Vardenne Quay Braithe BR3 4LN 

|Job reference|**KAL-ESR-4471**|
|---|---|
|Date of visit|**29 January 2026**|
|Engineer|**R. Tarbert**|
|Instrument|**Kestrel 400 turbidity analyser**|
|Location|**Vardenne Quay pumping station**|
|Service interval|**Twelve months**|



#### **Reported fault** 

Intermittent baseline noise on channel 2, reported by the Partnership on 21 January. The analyser had been running without attention since the annual service in January 2025. 

#### **Work carried out** 

The flow cell was removed, stripped and cleaned, and the pump tubing set replaced. The optical window was found to be lightly fouled on the inner face; it was cleaned rather than replaced, and should be inspected again at the next visit. The analyser was recalibrated against the two-point standards and left running on channel 2 for an hour before the site was handed back. The completed worksheet is bound in as page 2 of this report. 

KAL-ESR-4471 

Page 1 of 3 

FIELD SERVICE 

# Kirkhollow Analytical Laboratories Ltd Service worksheet 

|Job reference|KAL-ESR-4471||
|---|---|---|
|Instrument serial|GK-2214-77||
|Engineer|R. Tarbert||
|Date|29·January 2026||
|CHECKS AND READINGS|||
|Flow cell condition on arrival||Fouled, inner face<br>|
|Flow cell pressure after service||2.4 bar<br>|
|Zero drift over 30 minutes||0.003 mg/l<br>|
|Span recovery against standard||99.4 per cent<br>|
|Lamp hours at service||8,140|
|Result<br>Calibration certificate SR-44|71/2|Pass|
|Analil  t<br>TIME ON SITE|t  i   o s e  isit||
|Arrived||29 January 2026, 09:15|
|Left||29 January 2026, 13:40<br>|
|Chargeable time||4 hours 25 minutes|
|Next service due||January 2027|
|RECEIVED BY|||
|Name|M. Cairney||
|Position|Duty operator, Vardenne Quay||
|Date|29 January 2026||



Engineer's signature 

Page 2 of 3 

Service worksheet·KAL-ESR-4471 

Job KAL-ESR-4471 

Kirkhollow Analytical Laboratories Ltd 

### **Parts fitted** 

|**Part**|**Code**|**Quantity**|
|---|---|---|
|Pump tubing set|PT-114|1|
|Flow cell O-ring, 12 mm|OR-0912|2|
|Inlet filter, 40 micron|IF-4004|1|



### **Declaration** 

The work described in this report was carried out to the standard set out in the service agreement. The analyser was left in service and calibrated. The next annual service falls due in January 2027. 

|Engineer|**R. Tarbert**|
|---|---|
|Countersigned|**Dr A. J. Prosser**|
|Report issued|**2 February 2026**|



KAL-ESR-4471 

Page 3 of 3 

Markdown output with the scanned page OCR'd in place

Copied from Output file (Markdown), lines 1–95

Open the Markdown file ↗
Expected vs. Found
✓Expected: The scanned page's text should appear in the output instead of being skipped.Found: It appears between the surrounding digital pages, and the worksheet values are recovered; one sentence on the page is visibly garbled.
Supporting proof
Proof 1Screenshot
Execution screenshot with run log and rendered scanned page
Open original ↗
Why this result

It is a pass, not a fail: the scanned page appears between the surrounding digital pages, and the worksheet values are recovered. A visible OCR glitch remains, but the page is present.

Also observed in this test case

Visible OCR damage. A sentence in the scanned page is visibly corrupted, showing OCR damage rather than invented text.

Date formatting glitch. The first date is rendered with a middle dot instead of a space.

Tested by Vamshidhar Rao Thumula · evidence dated 24 October 2026
Limitations of this result

The scanned page has visible OCR corruption, so sentence-level fidelity is limited.

Configuration and setup

How this tool was set up for the run and what the test needed in place. Each row is a fact from the run's records; a fact the records do not hold is left out, not guessed.

Software that produced the output
PyMuPDF4LLM
Build or version
PyMuPDF4LLM 1.28.2
Surface
SDK / library
Set up before the run
A mixed PDF with one scanned image-only page had to be converted in one default full-document pass, with no per-call tuning or cropped-page input.
Conversion call
pymupdf4llm.to_markdown('service_report_KAL-ESR-4471.pdf')
Library versions
pymupdf4llm 1.28.2 | PyMuPDF 1.28.2 | pymupdf-layout 1.28.2 | rapidocr 3.10.0 | onnxruntime 1.31.0
Default OCR
Default: to_markdown(<path>) with no keyword arguments; use_ocr defaults to True and the OCR engine was auto-selected
Tested
24 October 2026 · Vamshidhar Rao Thumula

How this scenario is graded

How we decide Pass, Fail and Not gradable. The same rules apply to every tool tested on this scenario.

How results are decided

Each test case gets one result per tool: Pass, Fail or Not gradable. A test case we haven't run yet shows Untested. There are no partial results.

The rules
  • Pass: the tool did everything the test expected, and nothing it said contradicts the correct answer.
  • Fail: at least one expected behaviour clearly didn't happen; the test case's result says which one and quotes the tool.
  • Not gradable: our evidence couldn't settle the outcome (for example a record we needed is missing). It is never counted as a fail, and the test case's result says what's missing.

Where this sits in the benchmark

This page is one cell of a larger study: one tool, one scenario. Only this benchmark's frame appears here.

History of this result

What has happened to this result since it was first published. Runs and grades are never overwritten: a retest or a re-grade publishes a new result and keeps the earlier one readable.

from the publication record
3 November 2026First publishedConverting a complex PDF into clean Markdown with an open-source library v1

Act on this result

Nothing filed here edits the run or the grade. A challenge opens a review, and a review can produce a new run or a re-grade — which becomes the current result and leaves this one in the history.

This matches what I see

You run the same kind of test against your own setup and get the same behaviour.

Agree →
This does not match

Yours behaves differently. Tell us what you got, with a screenshot if you have one.

Disagree →
Point out an issue

Something here is wrong — a reference value, a transcription, a grade.

Report an issue →
Request a retest

On a newer build, a larger dataset, or your own setup.

Request a retest →
We have fixed this

Tell us what changed and we schedule a rerun of the failing test case. The old result stays as history.

Vendor notice →
Filed against this evidenceNothing yet. Challenges, counter-evidence and fix notices appear here with their outcome, and stay on the page after they are resolved.
Cite this result
aidemos.com/benchmarks/pdf-to-markdown-open-source/results/pymupdf4llm/a-document-mixing-digital-and-scanned-pages · 1 pass · 0 fail · coverage 1/1 · graded 2026-10-26

The same record is available as structured data through the AI Demos MCP server, with the counts, the coverage and every per-test-case reason carried as fields.

Verify the proof files

These files support this result. Open a file to inspect the original evidence.

Input · Document (PDF) ↗application/pdf · 356 KB
Output file (Markdown) ↗text/markdown; charset=utf-8 · 3 KB
Proof 1 · Screenshot ↗image/png · 1.5 MB
File fingerprints (SHA-256)

A fingerprint identifies the exact file used for this result.

Input · Document (PDF)096951b8eaf09740a926620943c7eb9b076e80144d76e7a90fb7f77056b6ef83
Output file (Markdown)387b52b11efe7c339a6ef67881a7e160aa3b5a5190b9da3df1a1d68f86684ce8
Proof 1 · Screenshot777629068ceab98bfaf1246fb2fb292a94670deb277fa57c7aaad79cb599da90