file2markdown
pdf-inspectormarkitdownpdf to markdownfirecrawlrustragllmdocument parsing

pdf-inspector vs MarkItDown: Which Should Convert Your PDFs to Markdown?

August 5, 2026

pdf-inspector vs MarkItDown: Which Should Convert Your PDFs to Markdown?

Firecrawl's pdf-inspector launched in 2026 as "the fastest PDF parser engine" — a Rust library that turns native-text PDFs into clean Markdown in milliseconds and even runs fully in the browser via WebAssembly. Microsoft's MarkItDown has been the go-to lightweight Python converter for a while. If you are choosing a parser for an AI or RAG pipeline, here is how they actually compare.

Full disclosure up front: file2markdown runs pdf-inspector under the hood for text-based PDFs, precisely because of the results below. If you do not want to install anything, the free PDF to Markdown converter gives you the same engine in a browser.

The Quick Answer

Use pdf-inspector when you are converting PDFs specifically and speed or structure matters: it is dramatically faster and produces real Markdown structure — headings, tables, lists — where MarkItDown outputs mostly flat text.

Use MarkItDown when PDFs are only one of many formats in your pipeline: it also handles DOCX, PPTX, XLSX, CSV, HTML, EPUB, images, and audio through one interface.

Use file2markdown when you want both — pdf-inspector-grade PDF conversion plus every other format and automatic OCR for scanned documents — with no code at all.

What Each Tool Is

pdf-inspector (by Firecrawl, MIT license) is a Rust engine with bindings for Python, Node.js, and browser WebAssembly. It does three things: classifies a PDF as text-based or scanned in ~10–50ms with a confidence score, extracts position-aware text with font information, and converts to Markdown with headings, lists, code blocks, and tables. It powers Firecrawl's own /parse endpoint.

MarkItDown (by Microsoft, MIT license) is a pure-Python converter that wraps existing extractors (pdfminer for PDF, python-docx, openpyxl, and others) behind one consistent API. Its goal is breadth: one library, a dozen file formats, LLM-friendly output.

Head-to-Head Comparison

pdf-inspectorMarkItDown
Speed on text PDFsMilliseconds (Rust)Seconds (Python/pdfminer)
Heading detectionYes (font-size analysis)No — flat text
Table extractionYes (Markdown tables)Rarely preserved from PDFs
Scanned PDF handlingClassifies + routes, no OCRLimited, needs configuration
Format supportPDF onlyPDF, DOCX, PPTX, XLSX, CSV, HTML, EPUB, images, audio
Runs in browserYes (WASM)No
LanguagesRust, Python, Node.js, WASMPython
LicenseMITMIT

The Structure Gap Is the Real Difference

We ran both tools on the same test set — an academic paper, an IRS form, an invoice, and a technical spec. MarkItDown extracted the text faithfully but produced zero headings and zero Markdown tables on every document. pdf-inspector produced 30–38 headings per long document and converted tabular regions into actual Markdown tables.

For RAG pipelines this matters more than speed: heading hierarchy drives chunking quality, and a table flattened into run-on text is very hard for an LLM to reconstruct.

Installing and Using Each

pdf-inspector

npm install @firecrawl/pdf-inspector   # or: pip install pdf-inspector
import { processPdf } from '@firecrawl/pdf-inspector';
import { readFileSync } from 'fs';

const result = processPdf(readFileSync('report.pdf'));
console.log(result.pdfType);   // "TextBased" | "Scanned" | ...
console.log(result.markdown);

MarkItDown

pip install 'markitdown[all]'
from markitdown import MarkItDown

md = MarkItDown()
result = md.convert("report.pdf")
print(result.text_content)

Where Each One Falls Short

pdf-inspector does no OCR. A scanned or image-based PDF gets classified — usefully, with per-page routing hints — but not converted. You need a separate OCR service for those, which is exactly how Firecrawl uses it internally. It is also PDF-only: for Word, PowerPoint, or spreadsheets you need another tool. And on complex multi-column layouts, reading order can come out slightly scrambled.

MarkItDown's weakness is PDF quality itself: because it delegates to pdfminer, structure is lost. Where it shines is breadth — if your pipeline ingests a mixed folder of DOCX, XLSX, and HTML, one dependency covers it.

Which Should You Use?

  • PDF-heavy RAG or agent pipeline, native-text documents → pdf-inspector. The speed and structure advantages are not close.
  • Mixed-format ingestion, PDFs are secondary → MarkItDown, accepting weaker PDF output. See our MarkItDown vs Unstructured comparison for alternatives.
  • Scanned PDFs in the mix → neither alone. Use a tool with built-in OCR — our guide to converting scanned PDFs to Markdown covers the options, and file2markdown routes scanned pages to OCR automatically.
  • No code, no setupfile2markdown's PDF converter runs pdf-inspector for text PDFs and adds OCR, DOCX, PPTX, and every other format on top.

For the wider landscape, see our ranked guide to the best PDF to Markdown converters in 2026.

The Markdown Memo

A fortnightly note for lawyers, researchers, accountants, and anyone else drowning in PDFs, scans, and decks. No spam.