PDF to HTML — a reading copy, not a copy of the layout
Sometimes you want the words of a PDF openable in a browser as a plain page: a reading copy for review, a text version to paste into a doc, a page you can read on a phone without a PDF viewer. This route builds exactly that — a self-contained HTML file whose content is the extracted text, organised per page. It is a semantic reading view, not a replica: nothing about the original layout, fonts or images is reproduced, and the file carries no external stylesheet.
Text comes from the PDF text layer, not from OCR: a page that is only a scanned photograph returns nothing.
Processed on your device. Files aren’t sent anywhere.
What the reading copy is
The exported file opens on its own. Its top heading is the source filename, followed by a short explanation that the text came from stored text content and that no OCR was performed. Each processed page gets its own block. There is no external stylesheet to download. Browser default fonts and spacing may differ, but the headings, page notes and text remain in the file.
What each page block shows
- A page heading marking which page the block belongs to.
- The page size in points, width by height, so you can see at a glance whether a page is landscape or unusually shaped.
- A character count for that page, which tells you whether the page carried much text or almost none.
- The extracted text as paragraphs, escaped so that angle brackets and ampersands in the document display as text rather than markup.
- A visible statement when a page had no text, so a graphic-only page explains itself instead of appearing as an empty section.
| Aspect | In the PDF | In the reading copy |
|---|---|---|
| Text | Stored with font references | Plain paragraphs, escaped |
| Layout | Positions on the page | Not reproduced; order follows the content stream |
| Fonts | Embedded or standard fonts | Not listed and not carried over |
| Images | Embedded picture objects | Not included and not inventoried |
| Searchability | Depends on the text layer | Depends on what extraction returned |
Bounds that apply, and one that does not
The page and input bounds apply: one file up to 20 MiB, pages chosen by slider 1 through 40 or Every page, and a document above 40 pages rejected rather than truncated.
Unlike the TXT route, this HTML route has no 200,000-character global output cap; the limit you are working inside is the page and file bounds, not a character budget.
Reviewing the order
- Open the exported file and read page 1 straight through; if it reads cleanly, the document's content order is straightforward.
- For a two-column page, expect the blocks to follow the document's own content stream, which is heuristic: left column and right column may interleave.
- Compare a suspicious page against the PDF viewer before quoting from it, so you do not present reordered text as the original sequence.
- Review pages with zero characters in the PDF viewer: they may be blank, scanned, or use lettering that extraction could not decode. A zero count does not identify which case applies.
A reading copy is honest about what it lost: the words survive, the arrangement does not.
Why order needs reviewing rather than trusting