Почему скопированный текст разваливается на куски и как это чинить
Откуда берутся жёсткие переносы строк в PDF и письмах, что означают CR и LF и как быстрее всего вернуть тексту нормальный связный вид.
Вы копируете абзац из PDF, вставляете в письмо — и получаете рваный столбик из обрывков предложений. Каждая строка заканчивается там, где её оборвала страница PDF, а не там, где кончается мысль. Инструмент «Удаление переносов строк» чинит это за одну вставку, но полезно понимать, откуда берётся проблема: она же вылезает в письмах, субтитрах, результатах OCR и логах терминала, и лечится каждый раз чуть по-разному.
Откуда берутся переносы
PDF не хранит абзацы. Он хранит строки текста с точными координатами на странице — именно поэтому документ выглядит одинаково на любом устройстве. Когда вы выделяете и копируете текст, программа просмотра проходит по этим строкам и после каждой вставляет жёсткий перенос. Ваш абзац превращается в двенадцать отдельных строк, и Word старательно сохраняет каждую.
Старая электронная почта делает то же самое намеренно. Стандарт формата интернет-сообщений рекомендует переносить текст письма на 78 символах, и многие почтовые клиенты до сих пор жёстко заворачивают исходящие письма в простом тексте. Перешлите сообщение пару раз — и строки будут обрезаны на 78, потом на 76, потом на 74 символах, а спереди вырастет частокол из знаков >.
У OCR своя версия: программа распознавания выдаёт по строке текста на каждую строку скана, честно воспроизводя ширину колонки бумажного оригинала.
CR, LF и почему важно, что именно у вас
Перенос строки — исторически не один символ, а два. На печатной машинке возврат каретки (CR) возвращал каретку к левому краю, а перевод строки (LF) прокручивал бумагу на строку вверх. Компьютеры унаследовали оба: Windows заканчивает строки парой CR+LF (\r\n), Linux и современные macOS — одиночным LF (\n), а Mac до OS X использовал одиночный CR.
Чаще всего вам всё равно. Но когда файл переезжает между системами — например, CSV выгружен в Windows, а обрабатывается на сервере с Linux, — внутри данных могут остаться одинокие символы \r: в большинстве редакторов они невидимы, зато отлично ломают скрипты. Инструмент приводит все три варианта к одному виду перед склейкой, поэтому файл из Windows и файл из Linux дают одинаковый результат.
Убрать всё или сохранить абзацы
Склеить текст в одну строку — правильный ход для некоторых задач: разорванный переносом URL, кусок кода из чата, столбик адресов, который нужен через запятую. Выберите «ничего» или «запятая + пробел» — и колонка превратится в список.
Для обычной прозы полное сплющивание обычно не годится: хочется склеить строки внутри абзаца, но сами абзацы не трогать. Это и делает режим «Сохранить абзацы»: пустая строка считается границей абзаца и остаётся на месте, а переносы внутри абзаца заменяются пробелом. Глава из PDF на три страницы выходит тремя аккуратными абзацами, а не одной строкой на 4000 символов.
Мелочь, которая бережёт нервы: каждая строка обрезается перед склейкой. PDF часто дописывает в конец строк пробелы, и без обрезки на месте каждого бывшего переноса появлялся бы двойной пробел.
Где это нужно каждую неделю
- Вставить цитату из PDF-отчёта в документ Word или CMS
- Почистить результат OCR перед переводчиком
- Превратить столбик значений из таблицы в список через запятую — для письма или SQL-условия
IN (...) - Поправить текст субтитров из файла .srt, где каждая реплика разбита на две короткие строки
Инструмент работает целиком в браузере — вставленный текст никуда не загружается. Это важно, когда чистишь договор или медицинскую выписку.
Вставьте разорванный текст в «Удаление переносов строк» — и заберите обратно чистый связный текст за пару секунд. Бесплатно и без регистрации.