Read
pdf.js reads the text, font sizes and positions on every page, in your browser.
DocumentsFree PDF converter
Extract the text from a PDF as clean Markdown, with headings, lists, tables and links rebuilt from the layout. Your PDF is read in your browser and never uploaded.
Highlights
This converter pulls the text out of a PDF and rebuilds its structure as Markdown, ready for a docs site, a notes app or an AI prompt.
It works on text-based PDFs, the kind made by Word, Google Docs, a browser or a design tool. Scanned pages are pictures of text, so they have nothing to extract. There's no OCR here.
To use this tool, start with Step 1 below. In Step 1: Add a PDF, choose or drop a PDF, or load the example. In Step 2: Edit and export, compare the Markdown with its preview, tidy anything that needs it, then copy it or download a .md file.
Choose or drop a text-based PDF, up to 10 MB. It is converted as soon as it's added.
Drop your file here
It is read on this device and never uploaded.
.pdf · up to 10 MB
Nothing is uploaded. PDFs are read in your browser.
Compare the Markdown with its preview and fix anything the layout didn't make clear. Changing an option above re-converts and replaces your edits.
0 characters · 0 lines
Preview
The formatted preview will appear here.
PDF to Markdown guide
Copying text from a PDF gives you broken lines, stray page numbers and lost headings. This tool reads the layout and gives you clean Markdown instead, ready to edit, publish or paste into an AI tool.
The basics
A PDF is a set of positioned words, not a structured document. The converter reads those positions and sizes and works backwards to the structure.
pdf.js reads the text, font sizes and positions on every page, in your browser.
Words on the same baseline become lines, ordered top to bottom.
Sizes, indents, gaps, bullets and columns reveal headings, paragraphs, lists and tables.
The result is written as escaped, GitHub-flavoured Markdown, ready to edit.
What carries over
What each part of a typical text-based PDF becomes in Markdown.
| In the PDF | In Markdown | Good to know |
|---|---|---|
| Larger text | # to ###### | Sized against the body text. Bold-only headings stay paragraphs. |
| Wrapped lines | Paragraphs | Lines are joined, and words hyphenated at a line end are rejoined. |
| Bullets & numbers | - and 1. lists | Indentation becomes nesting. |
| Aligned columns | Pipe tables | Simple one-line cells with clear gaps between columns. |
| Monospaced text | ``` code blocks | Indentation is estimated from position. |
| Link annotations | [text](url) | Clickable links in the PDF stay clickable. |
| Headers, footers, page numbers | Removed | Lines repeated at the top or bottom of most pages are dropped. |
Use cases
Turn a fixed document back into text you can work with.
Give ChatGPT, Claude or Gemini a long report as clean text instead of a PDF upload.
Move old PDF manuals and policies into a docs site, wiki or Git repository.
Pull papers, articles and handouts into Obsidian, Notion or Logseq.
Get editable text from a PDF without retyping or fixing broken lines.
Turn a published PDF into blog posts, emails or web pages.
Get plain, well-structured text that's easier to read aloud or reflow.
Set expectations
Being honest about the limits helps you decide if it suits your file.
Pictures of text have nothing to extract, and there's no OCR here.
Multi-column pages, sidebars and text boxes can come out in the wrong order.
Wrapped, merged or borderless cells may come out as plain lines.
Scanned page or screenshot? Use Image to Text, which reads text from pictures on your device.
Common questions
Quick answers about converting PDF files to Markdown.
Choose or drop your PDF in Step 1, or press Load example. The tool reads every page and rebuilds headings, paragraphs, lists and tables as Markdown. In Step 2, check it against the preview, make any edits, then copy it or download a .md file.
No. A scanned PDF stores each page as a picture, so there's no text to extract, and this tool doesn't do OCR (reading text from images). If a PDF has no text layer, the tool tells you. For scans, take a screenshot or photo of the page and use our Image to Text tool, which does read text from pictures.
Open it in any PDF viewer and try to select a word. If you can highlight individual words, it has a text layer and will convert. If clicking selects the whole page like a picture, it's scanned.
No. The PDF is opened inside your browser tab using pdf.js, the PDF engine built into Firefox. Nothing is uploaded or stored, so it's safe for contracts, statements and other private documents.
PDFs don't record structure, only where each piece of text sits and how big it is. The tool takes the most common text size as body text and treats noticeably larger lines as headings, biggest first. Lines starting with bullets or numbers become lists, and aligned columns become tables. Each option can be switched off if it misfires on your file.
Headings are recognised by size. A heading set in bold at the same size as the body text looks just like a short paragraph, so it usually comes out as its own paragraph instead. Add the # marks yourself in Step 2.
Simple tables, with one line of text per cell and clear gaps between columns, become Markdown tables. Cells that wrap onto several lines, merged cells and tables without clear gaps may come out as plain lines of text.
Text is read in rows across the page, so newsletter or academic layouts with two or three columns can mix lines from different columns. Single-column documents convert best.
Clickable links in the PDF become Markdown links. Images aren't extracted: Markdown can't hold them without a separate file, and charts or diagrams usually need redrawing anyway.
No. Open the file in a PDF viewer with the password, save a copy without protection, then add that copy here. The file size limit is 10 MB, and there's no daily limit.
Related converters
These tools also run in your browser, with no sign-up and nothing uploaded.