Remove line breaks
Fix text copied out of a PDF: join the broken lines back into paragraphs, undo the hyphenation, and keep the structure.
Drop your files here
.txt, .md, .csv · up to 5 MB
How to Fix the line breaks
- 1
Paste the broken text
Or drop a .txt or .md file up to 5 MB.
- 2
Pick what to do
Join into paragraphs is the default, and the one that fixes PDF text.
- 3
Copy or download
One click for the clipboard, one for a .txt file.
Why PDF text arrives broken
A PDF does not store paragraphs. It stores where each piece of text sits on the page, and when you copy from it the viewer reconstructs reading order by putting a line break at the end of every visual line. Paste that into anything with its own line wrapping and you get a ragged column with a break every eight or nine words. The fix is to join lines within a paragraph while keeping the blank line between paragraphs, which is what the default mode here does, and why it is the default rather than joining everything into one line.
Undoing hyphenation without breaking real hyphens
PDFs also break words across lines with a hyphen, so "understand" arrives as "under-" and "stand". Removing every hyphen before a line break would also destroy "well-known", "twenty-four" and every other genuinely hyphenated word that happened to wrap. The rule used here requires a lowercase letter on both sides of the hyphen: syllable breaks always have one, and compound words very often have a capital or a number on one side. It is not perfect, and it is right far more often than the naive version.
One sentence per line
A different job with the same starting point: instead of joining lines, put each sentence on its own. This is what you want before diffing two versions of a document, before feeding text to a translation memory, or when reviewing prose line by line. Finding where sentences end means handling "Dr. Smith", "e.g." and "3.14" correctly, which this page does with the same rule its word counter uses rather than splitting on every full stop.
Wrapping to a width
The reverse operation: take flowing text and break it at a fixed column, the way plain-text email, commit messages and code comments want it. The wrapping is greedy and word-aware, and a word longer than the width gets its own line rather than being cut in half: a sliced URL stops being a link, and a sliced identifier stops being an identifier.
The invisible characters
Text from PDFs and websites often carries soft hyphens and zero-width spaces: characters you cannot see, which survive copy-paste and quietly break searching, line-length counting and word matching later on. They are removed here before anything else happens, which is worth knowing if you have ever wondered why a search for a word that is visibly present finds nothing.
The text never leaves your device
Everything happens in your browser as you type. There is no upload, no account and no log, and closing the tab clears it.
Frequently asked questions
Will it destroy my paragraphs?
Not in the default mode; blank lines between paragraphs are kept. Joining everything into one line is a separate option.
Does it fix hyphenated words split across lines?
Yes, when there is a lowercase letter on both sides of the hyphen. Real hyphenated words like well-known are left alone.
Can it put one sentence per line instead?
Yes. It handles abbreviations and decimal points rather than splitting on every full stop.
Can I wrap text to 72 or 80 columns?
Yes, anywhere from 20 to 200. Words longer than the width get their own line rather than being cut.
What are soft hyphens and why remove them?
Invisible characters that ride along in copied text and break searching and length counting. They are stripped before anything else.
Is my text uploaded?
No. It never leaves the browser tab.
Can I get Windows line endings?
Yes. CRLF is one of the two output options.