TextWash

This page cleans text copied out of PDFs: ligatures are unfolded into plain letters and invisible soft hyphens are removed. The sample below came out of a typeset PDF — Ctrl+F can’t find "final" in it. Everything runs in your browser — nothing is uploaded.

Input

X-ray hover a highlight for details

Cleaned output copied ✓

Cleaning rules

Why is PDF text broken?

A PDF stores the exact glyphs the typesetter placed, not the plain text behind them. When you copy from one, you get those glyphs back: ligatures like fi (U+FB01) instead of the letters f+i, invisible soft hyphens where words were broken across lines, and sometimes hard line breaks mid-sentence or exotic spaces from the justification engine. The pasted text looks right and behaves wrong.

What it breaks

Search is the big one: "finance" never matches "finance" — not in Ctrl+F, not in grep, not in a database query. Résumé/ATS keyword matching famously fails on PDF CVs full of "certified" and "office". Soft hyphens split words invisibly, so "docu­mentation" won't match either. Quotes copied from typeset PDFs arrive curly and break code, and page numbers or footnotes ride along as stray fragments.

Fix it

Paste the text above. The "Unfold ligatures & fullwidth chars" rule (NFKC normalization) expands every ligature to plain letters, the invisible-characters rule strips soft hyphens, and the quotes/dashes rules normalize the punctuation. The x-ray shows each fix. In your own pipeline, unicodedata.normalize("NFKC", text) (Python) or text.normalize("NFKC") (JavaScript) handles the ligature half — soft hyphens you must strip separately (\u00ad).