Как извлечь текст из PDF и сохранить в TXT

Загрузите PDF в «PDF в текст», выберите режим и скачайте TXT в UTF-8. Сканы сначала распознайте в OCR PDF: распознанные страницы попадут в TXT в любом режиме, но «макет» на них работает как «обычный».

Инструмент PDF в текст берёт из PDF текстовый слой и сохраняет его в файл TXT в кодировке UTF-8. Такой файл удобно искать, цитировать, загружать в другую программу или обрабатывать скриптом. Картинки, шрифты, цвета и ячейки таблиц в TXT не переносятся: остаются только символы, переводы строк и служебные метки страниц.

Распознавания текста внутри «PDF в текст» нет. Если страницы — это сканы или фотографии, сначала нужен отдельный шаг OCR, а уже потом извлечение. Ниже — порядок действий, разница между режимами и то, как выглядит готовый файл.

Проверьте, есть ли в PDF текст

Откройте PDF в любом просмотрщике и попробуйте выделить одно предложение. Если выделяются отдельные слова и их можно вставить в простой текстовый редактор, текстовый слой есть. Если страница выделяется только целиком, как картинка, перед вами скан.

Проверьте несколько страниц, а не только первую. В одном файле часто соседствуют страницы, сохранённые из Word, и отсканированные приложения с подписями и печатями. Почему текст не выделяется и какие у этого бывают причины, разобрано в статье Почему в PDF нельзя выделить и скопировать текст.

Файл, который открывается только по паролю, инструмент не обработает и сообщит об этом. Сначала снимите пароль — порядок описан в статье Как снять пароль с защищённого PDF.

Пошаговое извлечение

1. Откройте PDF в текст и перетащите файл в область загрузки или выберите его с устройства. За один запуск обрабатывается один PDF. 2. В блоке «Параметры» выберите «Текстовый режим»: «обычный» (стоит по умолчанию) или «макет». 3. Решите, нужна ли галочка «Разрывы страниц». По умолчанию она включена. 4. Поле «Имя выходного файла» можно оставить пустым — имя подставится автоматически. 5. Нажмите «Обработать файл», дождитесь окончания и скачайте TXT. 6. Откройте результат в редакторе, который понимает UTF-8, и прочитайте предупреждения, если они появились рядом с результатом.

Какой режим выбрать: «обычный» или «макет»

Режим «обычный» выдаёт текст в том порядке, в котором он записан внутри файла, без выравнивающих пробелов. Для писем, договоров и статей из текстового редактора этот порядок обычно совпадает с порядком чтения. Режим «макет» повторяет расположение на странице: расставляет пробелы и пустые строки так, чтобы слова стояли примерно там же, где на листе.

Разница хорошо видна на прайс-листе. Допустим, в PDF есть таблица, где в одной строке стоят артикул AB-120, товар «Кабель» и цена 250. В режиме «макет» строка таблицы останется строкой: артикул, название и цена окажутся рядом, разделённые пробелами. В режиме «обычный» тот же фрагмент может прийти столбцами — сначала все артикулы, потом все названия, потом все цены, если таблица так записана в файле. Тогда связь между товаром и ценой теряется.

С текстом в две колонки всё наоборот. «Макет» ставит колонки рядом, поэтому в каждой строке TXT оказывается строка левой колонки и через пробелы — строка правой. Читать такой текст подряд неудобно. «Обычный» чаще отдаёт сначала всю левую колонку, затем правую. Если сомневаетесь, обработайте файл дважды и сравните оба результата на одной и той же странице.

Сканы после OCR: что даст каждый режим

OCR PDF оставляет изображение страницы как есть и добавляет к нему невидимый слой с распознанным текстом. Режим «обычный» читает этот слой целиком, а «макет» — лишь частично или не видит вовсе. Поэтому в режиме «макет» инструмент проверяет каждую страницу: если «макет» нашёл меньше 80 % букв и цифр, которые находит «обычный», страница берётся из обычного режима. Выбор «макета» больше не делает распознанные страницы пустыми и не вызывает предупреждения о том, что в PDF нет текстового слоя.

Цена этого — на распознанных страницах «макет» даёт то же, что «обычный»: колонки не встают рядом, выравнивающих пробелов нет. Решение принимается для каждой страницы отдельно, поэтому в смешанном файле страницы с родным текстом сохранят раскладку «макета». Для сканов порядок такой: распознайте файл в OCR PDF, скачайте PDF с текстовым слоем и загрузите его в «PDF в текст»; режим можно оставить «обычный». Как выбрать язык распознавания и проверить качество OCR, рассказано в статье Как распознать текст в скане PDF с помощью OCR.

Что окажется в файле TXT

Каждая страница начинается со строки-метки: `--- Страница 1 ---`, `--- Страница 2 ---` и так далее. Метки пишутся на языке интерфейса сайта, с которого вы запускали обработку. Если на странице не нашлось текста, под меткой стоит `(пустая страница)`. По этой строке удобно искать отсканированные листы в смешанном документе: предупреждение о пустом результате появляется, только когда текста нет ни на одной странице.

Галочка «Разрывы страниц» добавляет перед меткой каждой следующей страницы символ перевода страницы (form feed, код 0x0C; в программах его записывают как `\f`). В разных редакторах он выглядит по-разному: как пустое место, квадратик или обозначение FF либо ^L. Принтеры и некоторые программы понимают его как команду начать новый лист.

Если снять галочку, исчезает только этот символ. Метки страниц остаются в любом случае, и это полезно: по ним видно, с какой страницы взята цитата.

Как очистить текст от служебных строк

Если метки мешают, удалите их поиском с заменой по регулярному выражению. В редакторах вроде VS Code, Notepad++ или Sublime Text подойдёт шаблон `^--- Страница \d+ ---$` с пустой заменой. Символ перевода страницы ищется как `\f` или `\x0C`. В скриптах текст удобно делить на страницы по `\f`: при включённых разрывах каждый кусок начинается с метки своей страницы.

После текста каждой страницы инструмент добавляет одну пустую строку — её тоже можно убрать. А вот колонтитулы, номера страниц из самого документа и повторяющиеся шапки инструмент не трогает: они часть текстового слоя. Удаляйте их только после того, как убедились, что это действительно повтор, а не нужная информация.

Частые проблемы и как их распознать

Проверьте результат перед использованием

Прочитайте начало, середину и последнюю страницу TXT и сравните их с PDF. Отдельно посмотрите сноски, таблицы и колонки: там порядок строк ломается чаще всего. Для цитат сверяйте каждую выдержку с исходной страницей — её номер подскажет метка. Храните PDF рядом с TXT: если режим оказался неудачным, текст можно извлечь заново в другом режиме.

Почему TXT получился пустым?

Значит, текста нет ни на одной странице: это изображения без текстового слоя, и файл нужно сначала распознать в OCR PDF. Выбор режима тут ни при чём: распознанный слой попадает в TXT и в «обычном», и в «макете». Если пустым вышел уже распознанный файл, проверьте результат OCR — скорее всего, распознавание не нашло на страницах текста.

Когда выбирать режим «макет», а когда «обычный»?

«Обычный» даёт сплошной текст в порядке записи в файле и подходит для статей, писем и PDF после OCR. «Макет» сохраняет расположение пробелами: строки таблиц остаются строками, но две колонки текста встают рядом. Но так он работает только с родным текстом PDF: страницы после OCR выходят как в режиме «обычный».

Убирает ли снятая галочка «Разрывы страниц» метки страниц?

Нет. Пропадает только символ перевода страницы (\f) между страницами, а строки вида «--- Страница 2 ---» остаются в TXT.

Распознаёт ли «PDF в текст» сканы сам?

Нет, встроенного OCR в этом инструменте нет. Сначала обработайте скан в OCR PDF, скачайте результат и уже его загрузите в «PDF в текст». Режим подойдёт любой, но распознанные страницы в обоих случаях выйдут как в режиме «обычный».

В какой кодировке сохраняется TXT?

В UTF-8. Современные редакторы открывают такой файл правильно. Если старая программа показывает непонятные символы вместо кириллицы, откройте файл с явным выбором кодировки UTF-8.