1. Missing or incomplete ToUnicode CMap — The most common cause of garbled extraction. When a font uses custom glyph names or ligatures without a
ToUnicode CMap, text extraction tools cannot reliably map glyph codes to Unicode characters. Result: missing characters, wrong characters, or complete gibberish. Especially common in PDFs from: old LaTeX/pdflatex, professional design software (InDesign with custom typefaces), and some PostScript-to-PDF workflows.
2. Scanned document without OCR text layer — A scanned PDF is an image; there is no text in the PDF content stream at all. Text extraction returns empty or nothing. Resolution: run OCR before extraction. See
PDF OCR Guide for OCR options.
3. Incorrect or absent reading order — PDF text objects are stored in drawing order (the order the drawing instructions paint them), which may differ significantly from reading order for multi-column layouts, tables, figures with captions, and complex typographic arrangements. Extraction in drawing order produces text that jumps between columns, mixes figure captions with body text, and interleaves headers/footers with article content.
4. Text as outlines (converted to paths) — Some PDFs have text converted to vector paths — there is no font, no character code, just bezier curves that look like letters. This happens in: older publishing workflows, PDFs exported from some design tools with "create outlines" option, and watermarks or decorative text. Result: zero text extracted regardless of tool.
5. Image-masked text (white-on-white or invisible text) — Some PDFs place text with a rendering mode that makes it invisible (rendering mode 3 — invisible text) while keeping it in the content stream. This is used in OCR'd PDFs (hidden text layer behind image) and some DRM schemes. The text IS extractable, but the extracted content may not match what's visually visible.