/

PDF to Markdown Converter

Processed Client Side

Convert a PDF into clean Markdown — headings, lists, and links detected — entirely in your browser.

PDF file
Markdown
Add a PDF to see its Markdown here.

Bookmark this tool now — skip the search next time you need it.

About PDF to Markdown Converter

This tool runs entirely in your browser. Whatever you paste is processed on your own device and is never uploaded, logged, or sent to any server.

The PDF to Markdown converter reads a text-based PDF and rebuilds it as clean Markdown you can paste into a repository, a static site, a wiki, or an LLM prompt. It works from the PDF’s own text layer, not a screenshot, so the output is real selectable text: paragraphs are rejoined across line breaks, hyphenation at the end of a line is undone, headings are recovered from relative font size, bulleted and numbered lists keep their structure, and hyperlinks are preserved as Markdown links. Everything runs in your browser through a local copy of Mozilla’s pdf.js — the file is never uploaded, which matters because PDFs so often hold contracts, invoices, and unpublished drafts. It is built for documents that already contain text; a scanned or photographed PDF has no text layer to read and is detected and reported rather than converted.

Key features

  • Runs entirely in your browser — the PDF is parsed locally and never leaves your device
  • Rebuilds paragraphs from wrapped lines and undoes end-of-line hyphenation
  • Recovers heading levels from relative font size, mapping them to #, ##, ###
  • Keeps unordered and ordered lists, including simple nesting by indentation
  • Preserves hyperlinks as [text](url) using the PDF’s link annotations
  • Detects bold and italic runs from the embedded font names where available
  • Strips repeated running headers, footers, and page numbers
  • Best-effort reading order for two- and three-column layouts, with a warning when it falls back
  • Optional YAML front matter (title, source, date) for Hugo, Astro, Docusaurus, and Jekyll
  • Live Markdown preview plus a raw .md source view, one-click copy, and .md download
  • Word, character, page, and reading-time counts, plus conversion time
  • Toggle every heuristic on or off — changes re-render instantly without re-reading the file

How to use it

  1. Drop a PDF onto the box or click to choose one (up to 50 MB).
  2. Wait for the page-by-page progress bar to finish reading the text layer.
  3. Review the Markdown in the live preview, or switch to the raw source view.
  4. Turn individual heuristics — headings, lists, links, header stripping — on or off to suit the document.
  5. Copy the Markdown or download it as a .md file.

Tips & common mistakes

  • This tool needs a real text layer. If the preview shows a "scanned PDF" notice, the pages are images and there is nothing to extract without OCR, which is not included.
  • Heading detection is based on font size relative to the body text. A PDF that sets every heading in the same size as its paragraphs will produce few or no headings — add them by hand afterwards.
  • Tables are not reconstructed. PDF has no concept of a table, so rows come through as plain lines; the "Experimental table detection" toggle only helps when columns are strongly aligned.
  • Multi-column academic papers are handled best-effort. Check the reading order around figures, pull quotes, and footnotes, where column detection is weakest.
  • Images are ignored. The text around a figure is kept but the figure itself is not extracted or linked.
  • If the file is password protected, enter the password when prompted — it is used only locally to unlock the document for reading.
  • Very large PDFs (hundreds of pages) take a few seconds; the progress bar shows which page is being read and you can remove the file to cancel.

Related tools

Browse all 4 Other Converters tools

Frequently asked questions

9

Drop a PDF onto the tool or click to select one. It reads the PDF’s text layer in your browser and produces Markdown you can preview, copy, or download as a .md file. Nothing is uploaded.

No. Parsing runs entirely in your browser using a local build of Mozilla’s pdf.js. The file never leaves your device, so it is safe for contracts, invoices, and unpublished drafts.

No. A scanned or photographed PDF is a set of images with no text layer to read. The tool detects this and tells you, rather than producing an empty file. Optical character recognition (OCR) is not included in this version.

By comparing each line’s font size to the document’s body text size. Lines that are noticeably larger become #, ##, or ### headings. A PDF that uses one uniform font size throughout will produce few headings.

Not reliably. PDF stores no table structure, only positioned text, so table rows come through as plain lines. The optional "Experimental table detection" setting attempts pipe tables when columns are strongly aligned, but it is off by default.

Hyperlinks are kept as Markdown links using the PDF’s link annotations. Images are not extracted — the surrounding text is preserved but figures are skipped.

Best-effort. It looks for the gutter between columns and reads left column then right. Complex layouts with figures, sidebars, or footnotes may come out in the wrong order, and the tool shows a warning when it falls back to a single column.

Yes. If the document is encrypted you are prompted for the password, which is used only in your browser to unlock the file for reading. It is never stored or sent anywhere.

Yes. Turn on "Add YAML front matter" and the output starts with a --- block containing the title, source file name, and today’s date, ready for Hugo, Astro, Docusaurus, or Jekyll. It is off by default so plain Markdown stays plain.