03 / HOW TO CONVERT PDF
How to convert PDF to Markdown
Go to the top of this page, click the upload button, and select one PDF file from your computer. The file can be up to 50 MB and have up to 500 pages. Each job processes exactly one PDF file. After uploading, the conversion starts automatically; you will see the page's progress as uploading, then queued, then running with a percentage.
04 / WHAT THIS CONVERTE
What this converter does with your document
This PDF to Markdown tool runs on the server after your file is uploaded. The extraction is deterministic, meaning it follows clear rules rather than predictions from an AI model. Headings are recognized by their font or structure, lists become Markdown lists, tables become pipe tables (using the pipe-and-dash Markdown table syntax), and links in the PDF are matched to the words they are placed over so they show up as real Markdown links. Characters that have special meaning in Markdown—like backticks or asterisks—are escaped so they appear as literal text in your output.
The engine is a dedicated text and table extractor. It reads the PDF's actual content, not just a screenshot or an OCR guess, so text that is selectable in the original PDF will be captured cleanly.
05 / DEALING WITH SCANN
Dealing with scanned PDFs and no text layer
If a page has no extractable text (for example, a scanned image), the tool will give you a warning: 'NO_TEXT_LAYER_FOUND'. By default, the OCR fallback is turned off, meaning pages without a text layer are skipped and the warning tells you they need attention. You can turn on 'ocrFallback' in the settings to enable OCR for those pages. This recognition runs on English, German, and French text only, and it activates solely for pages with no text layer. When OCR does run, you will see the message 'OCR_TEXT_LAYER_ADDED'.
Also, when the tool finds tables in the PDF, it returns the warning 'TABLES_HEURISTIC'. This tells you that tables were detected and converted; it is not an error, just a note.
06 / WHAT HAPPENS TO YO
What happens to your file after upload
Your PDF is uploaded to private object storage. If you are not signed in, the file is deleted after 1 hour. If you are signed into an account, it is kept for 7 days and then automatically removed. The tool scans the file for malware before any processing begins, so an infected file is never opened by the conversion engine. Additionally, the file type is verified by reading its magic bytes, not by trusting the .pdf file name—this means a disguised file is rejected. After conversion, the resulting Markdown is re-opened and parsed to make sure it's valid before it is offered for download, so you won't receive a broken output file.
07 / SETTINGS YOU CAN A
Settings you can adjust
Besides the OCR fallback (shown as 'ocrFallback'), the converter has a 'detectTables' setting that is on by default. If you set it to off, tables will not be converted to pipe tables; instead, they may be treated as plain text or structured by other rules. The OCR languages are set to English, German, and French, and they only matter when the OCR fallback is running.
08 / TROUBLESHOOTING TH
Troubleshooting the output
If your Markdown result doesn't match the original document exactly—for example, a heading that isn't caught or a table that's not perfectly aligned—you can try turning on the OCR fallback if the warning said 'NO_TEXT_LAYER_FOUND'. For complex layouts, the extraction is best-effort: if your PDF has unusual fonts or overlapping text, some parts might be moved. Since the conversion is deterministic, you can rely on consistent behavior for the same PDF. If something looks wrong, check the warnings returned by the tool and consider adjusting the settings.
FAQ
Common questions
Does this converter use AI?
No. The extraction is deterministic, based on rules for identifying structure like headings, lists, links, code, and tables. It does not use an AI service, so the output is predictable for the same input.
What file size and page limits are there?
Your PDF can be up to 50 MB and contain up to 500 pages. Each job processes exactly one PDF file. Uploads that exceed these limits are rejected before conversion.
I got a warning 'NO_TEXT_LAYER_FOUND'. What does it mean?
It means one or more pages had no extractable text—often because they are scans or images. By default, OCR fallback is off, so those pages are ignored. Turn on 'ocrFallback' to have OCR recognition run for pages lacking a text layer. Languages supported: English, German, French.
How are tables converted to Markdown?
Tables are converted to Markdown pipe tables, with columns separated by pipes and headers using dashes. This preserves the table's data structure. The warning 'TABLES_HEURISTIC' indicates that tables were found and converted.
Will the Markdown lose hyperlinks from the PDF?
No. Links that exist in the PDF are re-attached to the words they are placed over, so they become real Markdown links rather than plain text. This keeps your references clickable in the converted file.
Is there a way to handle PDFs with no text layer?
Yes, turn on the 'ocrFallback' setting. For scanned PDFs, OCR will recognize text in English, German, or French on pages that otherwise have no text. You'll see an 'OCR_TEXT_LAYER_ADDED' warning when OCR runs.
Why did my output include backslashes before characters like * or _?
Markdown uses characters like * and _ for formatting. To ensure these symbols appear literally in the output, they are escaped with backslashes. That way, the text stays as you intended when rendered.