filetity

How to tell if a PDF is scanned or has a text layer

Checked 3 September 2026

A tool just told you your PDF has no text, or that it is a scan, or that the form has no fields. All three are the same diagnosis from different angles, and none of them can tell you what your file actually is or where to take it next. The checks below need nothing but a PDF viewer.

Two files that look identical on screen

A PDF that came out of a word processor stores its text as characters: each letter is a glyph from a font, placed at a coordinate on the page. That is the text layer. There are no paragraphs in it, no tables and no columns, only glyphs with positions, which is why a converter that hands you a table back has inferred it. The letters are there, though, and anything that can read the file can read them.

A PDF that came out of a scanner, a phone camera or a fax stores one picture per page. The words you see are pixels in that picture. There is no character anywhere in the file, so a tool that copies text finds nothing to copy, a tool that converts text has nothing to convert, and the honest result is a refusal rather than an empty document.

There is a third kind. A scan that has been through OCR keeps the picture and adds an invisible text layer on top of it. It searches and copies like a typed document and zooms like a scan, and the checks below can tell you that too.

Four checks, in any viewer

  1. Drag across a word. On a text layer, the word highlights and the selection follows the line. On a scan, either nothing highlights or the whole page lights up as one block, because the viewer has selected the image.
  2. Search for a word you can see. Press Ctrl+F, or Cmd+F, and type a word from the page. A viewer's Find box searches the text layer and nothing else, so a scan returns no matches for a word that is plainly in front of you. This is the same check our tools run. Firefox's built-in viewer is pdf.js, and its Find and our PDF to text tool read the page through the same call.
  3. Zoom to 400 percent. Glyphs from a font stay sharp at any magnification. A scan turns soft, then blocky, and a fax shows its jagged edges. This is the one check that separates an OCR'd scan from a typed document: if it searches fine but zooms badly, it is a scan with a text layer added.
  4. Copy a line and paste it somewhere plain. Select a sentence, copy it, paste into a text editor or the address bar. Real text arrives as text. A scan pastes nothing, or pastes an image if the editor accepts one.

Run more than one, and run the first two on more than one page. A document can be typed for thirty pages and then carry a scanned signature page, an appendix or an attached ID, and a check on page one tells you nothing about page thirty-one.

A check that does not work

The old advice is to open the PDF in a text editor and look for the word Font. We tried it on the one-line typed page from the method below and the string /Font was not in the file, because modern PDFs pack their dictionaries into compressed object streams. The same page saved with object streams turned off did contain it. So a hit tells you something and a miss tells you nothing, which makes it a bad test.

What to do with each answer

It has a text layer. The words are in the file and can be pulled straight out with no recognition and no guessing. To get them as plain text, page by page, extract the text. To edit them, convert the PDF to Word, which gives you paragraphs and page breaks and says plainly that tables and columns are not rebuilt, for the reason above: they were never in the file to begin with.

It is a scan. No text tool can help, because there is no text. The words have to be read off the picture, which is OCR, a different job with a different engine. Our OCR tool renders each page to an image, reads it on your own device, and gives you the result as text you can copy or save. OCR is recognition, so check names and numbers against the original before you rely on them. The typed document never needed that; the scan always does.

It is mixed. Some pages typed, some scanned. The text tools will accept it, because there is text in it, and the scanned pages simply come out empty under their page marker. That marker is how you find them. Run only those pages through OCR rather than the whole document, since recognised text is always the less trustworthy kind.

It is an OCR'd scan. Treat the text as OCR output, because it is. It copies and converts like a typed document, but whoever ran the recognition may not have checked it, and a wrong digit in an invisible layer is the hardest kind to notice.

Forms are a separate question

No fields is a different finding from no text. Fields are stored alongside the page rather than in it, and a document can have a perfect text layer and none of them. A form laid out in a word processor and exported to PDF is the usual case: every label is real text, and there is nothing to type into. A scanned form has neither text nor fields. In the method below, the typed page and the fillable form both carry text; only one has a field.

The check is simpler than the text checks. Open the form and click where an answer should go. A fillable form shows a box you can type in. If clicking does nothing, there are no fields, regardless of what the text checks said. A PDF with real fields can be filled in the browser and flattened when it is final. One without them has to be printed and filled by hand, or given fields in a PDF editor first. There is no route from a picture of a form to a fillable one that does not involve someone drawing the boxes.

Method

The numbers on this page come from three one-page PDFs generated with pdf-lib on 3 September 2026, then read back with pdf.js, which is a different library, so the reader is not agreeing with the writer. Characters are what pdf.js returned from the page's text content. Fields are what pdf-lib found in the form dictionary.

FileWhat is in itCharactersFields
Typed pageOne line of text drawn with an embedded font340
Scanned pageOne image stretched across the page and nothing else00
Fillable formA typed label and one text field next to it51

The typed page is the control. A detector that reports zero characters for everything would pass the scanned page on its own, so it had to find the 34 characters first before a zero on the scan meant anything. Our tools use the same rule: a file is treated as a scan only when not one page returned a single character, which is why a mixed document gets through and a pure scan does not.

Related: why a scanned PDF compresses differently from a typed one, and how these tools read a file without uploading it.