PDF to HTML
Drop a PDF and get one .html file you can open anywhere or paste into a site: real headings and paragraphs, pictures embedded. All on your device.
Updated November 5, 2026
Options
How it works
- Drop a PDF anywhere on this page.
- Choose Flowing text for a web page or a CMS, or Fixed layout to keep every line where it was.
- Check the preview and download the .html file; it carries its pictures and needs nothing else.
How a PDF becomes a web page
PDF.js reads every letter's position and font; the converter joins letters into lines, lines into paragraphs where the spacing, indents and sentence ends say so, tells headings by their size, bullets by their marker and bold and italic by the font, reads two columns in order and turns a line repeated at the top or bottom of most pages into a header or footer. The HTML it writes is plain and semantic: no absolute positions in Flowing text mode, one small stylesheet, pictures embedded.
Fixed layout mode is declared, not promised: every line goes in a positioned box inside a page-sized frame, so the page looks like the PDF in a browser and prints page by page, but editing it means moving boxes. Tables, footnotes and rotated text are the known limits today.
For a site, an e-mail, an archive
A report to publish on a site, a brochure to paste into a CMS, a document to keep readable without a PDF viewer: convert, check the preview under the result, download one file. Up to 20 PDFs of 200 MB each per run, and a page range limits the work to the pages you want.
Why people use it
Free, no account
Every tool is free, with no sign-up, no e-mail address and no limit on how often you use it.
Your files stay on your device
The browser opens the file and processes it in memory, on your device. Nothing is uploaded, so nothing can be kept, leaked or looked at.
No watermark
The result is yours as it is: no watermark, no branding, no trial version.
Any device
A phone, a tablet or a computer with a current browser is enough: no app to install, no software to update.
Works offline after the first visit
The browser keeps the pages and their engines, so a tool you have opened once keeps working without a connection.
Open-source engines
The code that does the work is open-source software, named on the Licences page, running as WebAssembly in your browser.
Why it is private
Everything you type or drop here is handled by your browser, on your device. Nothing is uploaded. To verify, open your browser's developer tools, go to the Network tab, and use the tool: you will see no request carrying your data.
While a file is being processed, the counter under the result shows the page's network traffic: 0 requests and 0 B for your data.
How to check it yourself, step by step
What you can check yourself
Open your browser's developer tools on the Network tab before you drop a file: while the tool works you will see no request carrying your data, and the counter under every result shows the page's own measurement.
The site sets no cookies, so there is no cookie banner. Anonymous usage counts and error reports without file names are the only things that leave the page, as the privacy policy describes.
Every change goes through thousands of automated tests in three browser engines, including a guard that fails a test if a single byte of a file leaves the page.
Frequently asked questions
- What does the HTML look like?
- In Flowing text mode: a single file with a small stylesheet, h1 to h6 headings, paragraphs with their alignment, nested lists, pictures as data URLs and a dashed rule where a page ended. It reads well on a phone and pastes cleanly into a CMS. In Fixed layout mode every line sits in a page box at its position, which looks like the PDF but is harder to edit.
- Are the pictures included?
- Yes, embedded in the file itself as data URLs, so the page needs no folder of images and works offline. Untick Keep pictures for a text-only file.
- Does it work with scanned PDFs?
- A scan has no text, so the page would hold only the picture of each page. The result says how many pages are scans; run OCR first.
- Is the PDF uploaded?
- No. PDF.js reads the file in your browser, the page is built on your device and nothing is sent anywhere. The network meter under the result shows 0 B.
- Are tables kept?
- Not as HTML tables yet: the cells come out as lines of text in reading order. Headings, paragraphs, lists, columns and pictures are reconstructed.
- Can I convert only some pages?
- Yes, type them in the Pages field, for example 1-3, 5.
Install it as an app
Chrome, Edge and Android browsers offer to install this site from the address bar or the menu; on iPhone use Share, then Add to Home Screen. It opens like an app, keeps working offline and still processes everything on your device.