MarkdownPDF

How MarkdownPDF works

Every tool on this site processes your files inside your own browser. The file is read from your disk into the page, converted by JavaScript and WebAssembly running on your device, and handed back to you as a download. It is never sent to a server — ours or anyone else's. This page explains how that works and, more usefully, how you can check it yourself instead of taking our word for it.

What happens when you drop a file

  1. Your browser reads the file locally. The page gets the bytes through the standard File API — the same mechanism a photo editor uses to open an image. No network request is involved.
  2. The conversion code runs on your device. The libraries listed below are downloaded once, like any other part of a web page, and then run locally. Heavy work (PDF parsing, OCR) happens in Web Workers so the page stays responsive.
  3. The result is built in memory and saved by your browser. Downloads are generated with a local blob: URL; nothing is uploaded to produce them.

The libraries doing the work

LibraryWhat it does here
pdf.js (Mozilla)Reads PDFs: text extraction, page rendering, JBIG2 and JPEG 2000 image decoding.
Tesseract.jsOCR for scanned pages and images, in 7 languages (English, French, Spanish, German, Portuguese, Italian, Arabic).
pdf-libWrites PDFs: splitting, merging, reorganizing, metadata editing and removal.
markedParses Markdown for previews and conversions.
jsPDFGenerates PDFs with real, selectable text from Markdown.
Mermaid and MathJaxDraw diagrams and equations in Markdown previews and PDFs.
mammothReads Word .docx files for Word to Markdown.
TurndownTurns HTML — pasted, saved or converted from Word — into Markdown.
docxWrites Word .docx files from Markdown.
DOMPurifySanitises HTML so previews and exports cannot carry scripts.
js-tiktokenOpenAI's tokenizers, for exact token counts and chunking.
jsdiffCompares two texts line by line and word by word.

All of them, including the OCR engine and its language files, are served from markdownpdf.app itself. No part of the conversion depends on a third-party CDN.

What the network is used for

  • Loading the site and its tools — HTML, JavaScript, the OCR engine, language data and fonts, all from markdownpdf.app. Large parts (like the OCR engine) load only when a tool needs them.
  • Google Analytics — anonymous usage statistics: which pages are visited, and coarse tool events such as “a conversion started”, “it succeeded”, “OCR was used”. Events carry only buckets like the file size range (“1–10 MB”) and the format. File names, document text and document metadata are never sent: the code that sends events drops any parameter that is not on a short, fixed list.
  • Images referenced by your Markdown — if your Markdown contains an image URL, your browser loads it from that address, as it would in any Markdown preview.
  • Advertising, if enabled — the site may show Google ads. Ads are third-party content with their own cookies (see the privacy policy); they have no access to the files you convert, which never leave the tool.

How to verify it yourself

You do not have to trust this page. Two checks take a minute:

  1. Watch the network. Open your browser's developer tools (F12), switch to the Network tab, then convert a file. You will see the tool's code load, and analytics pings — but no request carrying your document.
  2. Read the Content-Security-Policy. Every page is served with a Content-Security-Policy header. Its connect-src directive is the complete list of destinations the page is allowed to send data to: this site itself (which has no endpoint that accepts files) and Google Analytics. The browser enforces it — even a bug in our code could not send your file anywhere else.

What we cannot promise

  • Your own browser and extensions. Browser extensions with access to every page can read what any page reads. That is outside what a website can control.
  • Speed on large files. Because the work happens on your device, a 300-page scanned PDF takes as long as your computer needs. Every long task shows its progress and can be cancelled.
  • Perfect conversions. Each tool lists its limitations on its own page. PDF is a layout format, not a structure format, so some conversions are best-effort.

Questions or a finding that contradicts this page? Write to contact@markdownpdf.app — it will be answered and, if we are wrong, fixed here.