📄

PDF to Markdown

Extract a PDF text layer and infer headings from font size to produce structured Markdown, all locally
Local 📂 File 👤 ToolWorld 🏷️ v1.2.0
PDF file Choose a file to extract text into Markdown
Drop a PDF here, or click to choose a file

Scanned PDFs have no text layer, so run text recognition on them first

Result

Choose a PDF and click Convert

How to Use

📖 About this tool


Moving content out of a PDF into a notes app, a documentation site or a repository usually produces a mess of broken line breaks and odd indentation. This tool reads the text layer of a PDF, infers which lines are headings and which are body copy from their font sizes, and produces structured Markdown with real heading levels, ready to paste without adding hash marks by hand.

It is handy for turning a technical white paper into editable notes, moving report sections into a wiki, or assembling paper abstracts into a README. Everything happens in the browser, so the file never leaves your device.

Text is taken from the PDF content stream along with its position and size, which is what makes heading inference possible at all. Because layout information in a PDF is positional rather than semantic, the conversion is best understood as a good first draft: it saves the typing, and you still skim the result. Headings, page marks and table handling are all optional, so you can strip the structure out entirely if the document confuses the inference and you would rather add it yourself.

The conversion is best understood as a strong first draft. It saves the retyping and the manual heading marks, and you still skim the result afterwards, because layout information inside a PDF is positional rather than semantic: the file records where each glyph sits, not what it means. Heading detection, page marks and table handling are all optional, so you can strip the structure out entirely if the document confuses the inference and you would rather add the markup yourself. Nothing is uploaded, which makes it safe for drafts and internal documents.

✨ Features

  • Heading inference: lines noticeably larger than body text become headings at several levels.
  • Page range: convert only the pages you need, using notation such as 1-5,8.
  • Line joining: sentences hard-wrapped across two lines are put back into one paragraph.
  • Page marks: optionally label the start of each page to cross-check against the original.
  • Table attempt: columns inferred from spacing are rendered as Markdown tables where possible.
  • Heading depth: set how many levels of heading should be detected at most.
  • Copy or download: take the result straight to the clipboard or save it as a .md file.

🚀 How to use

  1. Click Choose PDF, or drop a file onto the dashed box.
  2. Optionally enter a page range such as 1-5,8; leave it blank for every page.
  3. Choose heading detection: infer from font size, or treat everything as body text.
  4. Tick the options for page marks, table handling and joining broken lines.
  5. Click Convert. The Markdown appears on the right with statistics.
  6. Click Copy result or Download Markdown to save your work.

⚠️ Notes

  • Scans do not workA scanned PDF has no text layer, so nothing can be extracted until text recognition is run.
  • Layout is simplifiedMulti-column pages, mixed figures and running headers cannot be reproduced faithfully; proofread the output.
  • Headings are guessed from sizeAn occasional large word inside body text may be misread as a heading; switch to body-only mode and structure it yourself.
  • Tables are best effortColumns inferred from spacing are not guaranteed; check important figures against the original.
  • Nothing leaves the deviceParsing happens entirely in the browser and no file is uploaded.

Related

⏫︎
💬