vust

Scanned PDF? Read This First

Your Scanned PDF Has No Text. Here's Why AI Can't Summarize It — and the Fix.

A scanned page is a photo of text, not text a computer can read — so @vustSummaryBot (and every text-extraction summarizer) comes back empty on it. This isn't a limit that gets fixed by a bigger model; it needs one OCR step first. Here's how to spot a scanned PDF and the exact workflow to summarize it anyway.

No OCR in SummaryBot · OCR-first workflow belowHonest scope: text extraction only, no OCR
Honest: no OCR in SummaryBot4-symptom scanned-PDF checklistOCR-first workflow, step by step

Honest scope

No AI summarizer reads a scanned PDF directly — SummaryBot included

@vustSummaryBot's PDF handling extracts existing text from the file; on a scanned or image-only PDF there is no text to extract, and the bot returns a clear no-extractable-text message instead of guessing. The same is true of the web /summary/pdf tool and of the PDF-to-Markdown converter. Run OCR first — any tool, see the workflow below — then paste the resulting text in as normal.

This is a genuine file-format limitation, not a quality gap that a future model update closes.

See the difference

What happens when you try a scanned PDF directly, how to check for a text layer, and the one-step OCR fix.

Sending a scanned PDF directly

What you'd expect

Upload the scanned PDF to an AI summarizer and get a summary back, same as any other PDF.

What actually happens

The extractor finds zero characters of text — a scanned page is a photograph of text, not encoded text — so the summarizer has nothing to summarize. @vustSummaryBot returns a clear "no extractable text (scanned/image-only)" message instead of guessing or hallucinating a summary from the filename.

Checking for a text layer first

The quick test

Open the PDF and try to select a sentence with your cursor, the way you'd select a sentence in a Word document.

What the result tells you

If a sentence highlights and you can copy-paste it, there's a text layer — any summarizer can read it. If nothing highlights, or the whole page selects as one image, it's scanned/image-only and needs OCR before any AI tool can touch it.

The OCR-first fix

One extra step

Run the scanned pages through an OCR pass to turn the photographed text into real, selectable text.

Then it works normally

Paste the OCR'd text — or a batch of OCR'd pages — into @vustSummaryBot the same way you'd paste any long document, and the normal summary pipeline (bullet points, key takeaways, TL;DR) runs exactly as it would on a native-text PDF.

02·Practical use cases

Who hits the scanned-PDF wall

Researchers with old library scans

A pre-2000 paper only exists as a photocopy-of-a-photocopy PDF from a library archive, with no text layer.

The 4-symptom checklist confirms it's a scan, then the OCR-first workflow gets it into a summarizable state.

Anyone with a photographed document

A contract, form, or report was scanned on a home scanner or photographed on a phone rather than exported digitally.

OCR converts the photographed page into real text before any summarizer — SummaryBot included — can read it.

People who already tried and got an empty result

SummaryBot or the web tool returned a 'no extractable text' message and it wasn't obvious why.

This page explains exactly why that happens and the one extra step that fixes it.

03·How it works

From scanned PDF to a real summary

01Confirm it's actually scanned

Try to select a line of text with your cursor — if nothing highlights, it's a scan, not a native PDF.

02Run OCR on the scanned pages

macOS Preview, Adobe Acrobat, Google Docs, or Tesseract all convert the photographed page into real text; @vustMarkdownBot's photo path works for short scans, one page at a time.

03Paste the extracted text into @vustSummaryBot

Once you have real text, it goes through the normal summary pipeline exactly like any native-text PDF — no special mode needed.

04·Same tool · in Telegram

Telegram

Once you have text, summarize it here

@vustSummaryBot · Run OCR first with any tool above, then paste the result into @vustSummaryBot for the normal bullet/paragraph/key-takeaways/TL;DR summary.

05·Quality & trust

What's honest about this page

SummaryBot does not OCR PDFs — full stop

packages/summary-telegram/src/pdf-extractor.ts returns error code 'no_text' on a scanned/image-only PDF rather than attempting OCR or guessing at content. The web /summary/pdf tool has the identical text-extraction-only limitation.

MarkdownBot's OCR path is photo-only, not PDF-only

@vustMarkdownBot's DSLab OCR pipeline reads a Telegram PHOTO (an image file); sending it a scanned PDF document goes through the same text-extraction pipeline as SummaryBot and hits the identical no-text result. Exporting scanned pages as images first is the workaround for short documents.

This is a file-format limitation, not a roadmap gap

No AI summarizer built on text extraction reads a scanned PDF directly — the fix always requires a separate OCR pass first, on any product.

Frequently asked questions

Ready when you are

OCR first, then summarize — same pipeline, one extra step.

A 4-symptom scanned-PDF checklist and the exact OCR-first workflow, so a scan isn't a dead end.

What "scanned PDF" actually means, technically

A PDF file can hold two very different kinds of content that look identical when you open them. A "native" or "digital" PDF — one exported from Word, Google Docs, LaTeX, or most modern software — stores actual characters: every letter, space, and line break is encoded data that a computer can read, select, search, and copy. A "scanned" or "image-only" PDF is different: it's a container holding a photograph (or a series of photographs) of a printed page. To a human eye reading it on screen, both look like a page of text. To a computer trying to extract that text programmatically, the scanned version is just pixels — no more readable as text than a photo of a street sign is readable as a text file.

This distinction is invisible in casual use and becomes very visible the moment any tool tries to extract, search, or summarize the text. It's also why "just use a smarter AI model" doesn't fix it — summarization models read text, and there's no text there to read. The fix has to happen one layer earlier, at the image-to-text conversion step, which is what OCR (optical character recognition) does.

How @vustSummaryBot's PDF pipeline actually handles this

To be precise rather than hand-wavy about it: @vustSummaryBot's PDF extraction (packages/summary-telegram/src/pdf-extractor.ts) parses the PDF file looking for an existing text layer. If it finds one — the normal case for reports, papers, contracts, and most documents produced digitally — it extracts the text and the usual summary pipeline runs: bullet points, paragraph, key takeaways, or TL;DR, exactly as described on the main /summary/pdf page. If it finds no text layer, the extractor returns a specific error code (no_text) with the message "PDF contains no extractable text (scanned/image-only)" — an honest failure, not a hallucinated summary or a guess based on the filename.

The web tool at /summary/pdf works the same way, using client-side text extraction in your browser (so the file itself never leaves your device) — but it's the identical text-layer-only approach, with the identical scanned-PDF limitation. Neither surface runs an OCR pass on a PDF. This isn't an oversight waiting to be patched — OCR on multi-page scanned documents is a meaningfully different, heavier processing step than text extraction, and building it into every PDF upload would slow down the 95%+ of PDFs that already have a text layer for the sake of the minority that don't. The honest design is to fail clearly and fast on a scan, and point you to the one-step fix, which is what this page does.

Four symptoms that tell you a PDF is scanned

You don't need special software to check — any PDF viewer shows these signs within seconds.

  1. You can't select text with your cursor. Try to click-and-drag to highlight a sentence, the way you'd select text in an email. On a native PDF, the sentence highlights and you can copy it. On a scanned PDF, either nothing highlights at all, or the entire page selects as a single rectangular block (because the "text" is actually one embedded image).

  2. Ctrl+F / Cmd+F finds nothing. Search for a word you can clearly read on the page. If the search comes back empty even though the word is visibly right there, the PDF viewer's search function — which only searches actual encoded text — has confirmed there's no text layer.

  3. Zooming in shows paper texture, not clean vector text. Native PDF text stays crisp at any zoom level because it's rendered from font data, not pixels. A scanned page gets visibly grainy, shows JPEG-style compression artifacts, or reveals the physical texture of the original paper when you zoom past 200%.

  4. The page has a slight rotation, skew, or uneven lighting. A perfectly straight, evenly-lit page can still be a scan, but a page with a barely visible tilt, a darker edge where the scanner bed's lid didn't press flat, or a slight curve near the spine (common with book scans) is a strong tell — these are physical scanning artifacts that only appear on photographed pages, never on digitally generated PDFs.

If a document fails even one of these checks — especially the copy-paste test — treat it as a scan and run OCR before trying to summarize it.

The OCR-first workflow, step by step

  1. Confirm it's actually scanned. Run the copy-paste test above on a couple of pages. Mixed documents exist too — a digitally-typed report with one scanned signature page, for instance — in which case only the scanned pages need OCR; the rest already has a usable text layer.

  2. Run OCR on the scanned pages. Several options work, at different levels of convenience:

    • macOS Preview or Adobe Acrobat can OCR a scanned PDF and save a new, text-searchable version — a good option if you're already on a Mac or have Acrobat.
    • Google Drive + Google Docs will OCR a PDF automatically if you upload it to Drive and open it with "Open with Google Docs" — free, and works from any browser.
    • Tesseract (open-source, command-line) handles batches well if you're comfortable with a terminal and have many scanned pages to process at once.
    • @vustMarkdownBot's photo path handles this differently: it doesn't OCR a PDF file, but it does OCR a photo. If your scan is only a page or two, export each page as an image (a screenshot of the PDF page works) and send each one to @vustMarkdownBot as a Telegram photo — it runs DSLab OCR on the image and returns the extracted text as Markdown. This is a real, working shortcut for short documents; for a 40-page scanned report, a dedicated OCR tool that processes the whole PDF at once is faster.
  3. Verify the OCR output before summarizing. OCR isn't perfect — it can misread similar-looking characters (0/O, 1/l/I), mangle unusual fonts, or garble tables and multi-column layouts. A quick skim of the extracted text, especially numbers and names, catches the errors that matter before they propagate into a summary that treats a misread number as fact.

  4. Paste the extracted text into @vustSummaryBot or /summary/pdf. Once you have real, selectable text — whether from a downloaded OCR'd PDF, a Google Docs export, or a Markdown file from @vustMarkdownBot's photo path — it goes through the exact same summarization pipeline as any other document: paste it as text, or save it as a .txt/.pdf and use the normal upload flow. There's no special "OCR mode" needed on the SummaryBot side; from its perspective, OCR'd text and originally-digital text are indistinguishable.

Why this two-step process is actually the right design, not a missing feature

It's tempting to want "just handle it automatically" — upload the scan, get the summary, no manual OCR step. But bundling OCR into every PDF summarization request would mean every user pays the processing cost (both in time and, on a hosted OCR service, in actual compute cost) for a problem that affects a minority of PDFs. Splitting the concerns — text extraction handles the common case fast and free, OCR is a deliberate extra step you take only when you actually have a scan — keeps the common path fast while still leaving a real, documented route for the scanned case. The alternative, silently attempting OCR on every PDF "just in case," would also make failures harder to diagnose: a bad OCR read on a document that actually had a clean text layer is a worse outcome than clearly extracting the text that was already there.

The honest failure message — "no extractable text (scanned/image-only)" — is deliberately specific rather than a generic error, precisely so you know immediately that the fix is OCR, not a retry, not a different file format, and not a different summarization tool. Any AI summarizer built on text extraction (which is most of them) will hit the identical wall on the identical file; this isn't a SummaryBot-specific gap you'd solve by switching products.

What summarizes well once you've done the OCR step

Once OCR'd, scanned documents summarize exactly as well as native ones — the summarization model can't tell the difference, and doesn't need to. Old academic papers only available as library scans, historical documents, printed forms, and photographed textbook pages all work fine post-OCR. The main quality variable at that point isn't "was this scanned" but "how clean was the OCR pass" — a crisp, high-resolution scan of a clean printout OCRs nearly perfectly; a faded photocopy of a photocopy, or a page photographed at an angle under poor lighting, produces more OCR errors that are worth spot-checking before you trust the resulting summary's specifics.

A quick before/after on OCR quality

Two scans of the same paragraph illustrate the range. A clean, flatbed-scanned page at 300 DPI from a modern printout OCRs to something like: "The quarterly report shows a 12% increase in revenue, driven primarily by the expansion into three new markets." Every word correct, punctuation intact, ready to summarize immediately. A poor scan of the same paragraph — photographed at an angle on a phone, under yellow indoor lighting, from a page that had been folded — might OCR to something like: "Tbe quarteriy repert shows a l2% increase in revenue, driven primariiy by tbe expansion Into tbree new markets," with character-level errors scattered throughout (rn/m confusion, 1/l/I swaps, b/h misreads). The second version is still summarizable — a capable summarization model can often infer intent past minor OCR noise — but a number like "l2%" reading as a letter-l instead of a one is exactly the kind of error that's worth a human glance before it ends up quoted as fact in a summary. This is the practical reason step 3 of the workflow above (verify before you summarize) isn't optional busywork — it's the one place an OCR error becomes a summary error if skipped.

When it's genuinely not worth OCR'ing

Not every scanned document is worth this two-step process. A single scanned page you just need the gist of is often faster to read yourself than to OCR, verify, and then summarize — the OCR-first workflow earns its keep on longer documents (10+ pages) where reading the whole thing yourself is the actual alternative being avoided. For a one-page scanned form or letter, skimming it directly is usually the pragmatic choice.