iSomor
Вернуться в блог

Как перевести PDF в текст (TXT) и что проверить после извлечения

5 мин чтенияEVE
Нарисованная от руки страница PDF, строки которой перетекают на чистый лист; одна строка бирюзовая, рядом небольшая лупа

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

Что вы получаете, переводя PDF в текст?

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

Больше всего удивляет порядок. PDF хранит, в каком месте страницы нарисован каждый фрагмент текста, но не обязан хранить, какой абзац идёт следующим. В документации PyMuPDF об этом сказано прямо: при извлечении простого текста результат никак не «причёсывается», и для PDF это может означать «output not in usual reading order, unexpected line breaks and so forth», то есть непривычный порядок чтения и неожиданные переносы строк (рецепты PyMuPDF по работе с текстом, на английском). Поэтому в TXT могут оказаться все слова, а читаться он всё равно будет неправильно.

Есть ли в вашем PDF текст, который можно извлечь?

Перед преобразованием откройте PDF и попробуйте выделить курсором одно предложение.

  • Слова выделяются по одному: у страницы есть текстовый слой, и инструмент сможет его прочитать.
  • Выделить предложение не получается: скорее всего, текстового слоя на странице нет. Читать там нечего, а инструмент iSomor «PDF в текст» не выполняет OCR. Если не уверены, просто запустите извлечение: страницы без читаемого текста будут перечислены.
  • Программа просит пароль или сообщает, что копирование запрещено: документ защищён. Попросите у владельца незащищённую копию, которую вам разрешено обрабатывать.

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

Как перевести PDF в TXT пошагово?

Ниже используется инструмент iSomor «PDF в текст»: он читает имеющийся текстовый слой прямо в браузере и позволяет проверить каждую страницу, прежде чем забрать текст.

  1. Выберите один PDF. За раз обрабатывается один PDF с текстом размером до 20 МБ и не длиннее 200 страниц. Файл больше 200 страниц не принимается, даже если вам нужны лишь несколько страниц. Файл обрабатывается в браузере и никуда не загружается.
  2. Укажите нужные страницы. Оставьте диапазон страниц пустым, чтобы извлечь все, или введите диапазон вроде 1-3, 5. Номера — это позиции в файле начиная с 1, включая обложку, поэтому они могут не совпадать с номерами, напечатанными на страницах. Если нужна только одна глава, извлеките только её — проверять придётся меньше.
  3. Просмотрите страницы по одной. Пролистайте страницы и сравните каждую с оригиналом. Если на части выбранных страниц нет читаемого текста, их номера будут перечислены, как и страницы, где пропущен текст из скрытых слоёв (как и в программе просмотра PDF, текст из слоёв, скрытых по умолчанию, не извлекается). Если читаемого текста нет ни на одной из выбранных страниц, инструмент сообщит, что на выбранных страницах нет читаемого текста, и TXT создан не будет.
  4. Скопируйте или скачайте. Скопируйте весь извлечённый текст или скачайте файл TXT. И в скопированном тексте, и в TXT между каждыми двумя страницами стоит символ перевода страницы, так что границы страниц сохраняются. TXT сохраняется в кодировке UTF-8 с окончаниями строк LF.

Инструмент обрабатывает до 200 000 символов на страницу и до 1 миллиона в сумме. Очень длинный документ лучше преобразовывать по частям.

Что проверить в TXT, прежде чем его использовать?

Держите исходный PDF открытым рядом с текстом и сначала посмотрите на эти места. Именно здесь извлечённый текст чаще всего ошибается, и каждая проблема решается по-своему.

Что проверитьКак это выглядит в TXTЧто делать
Пустые страницыНомер страницы указан в списке страниц без читаемого текста, или появляется сообщение, что на выбранных страницах нет читаемого текстаПроверьте, не изображение ли эта страница. Не считайте, что файл повреждён: остальное может быть в порядке.
Порядок колонокПоловина предложения из левой колонки сливается с половиной предложения из правойИзвлеките диапазон поменьше и сравните со страницей. Пока не удаляйте переносы строк — это лишь скроет проблему.
Колонтитулы и номера страницНазвание раздела или номер страницы посреди абзацаУдаляйте только строки, которые вы сверили со страницей. Число на отдельной строке может быть номером раздела или данными.
ТаблицыЯчейки превращаются в цепочку слов и чисел, иногда в другом порядкеПрежде чем использовать любую цифру, восстановите строки по оригиналу. Проверяйте заголовки и единицы измерения, а не только числа.
Формулы и символыВерхние и нижние индексы, дроби, знаки минуса или греческие буквы сплющены или пропалиПерепишите формулы вручную из оригинала или оставьте ссылку на страницу.
Искажённые символыКвадратики, вопросительные знаки или не те буквы, хотя PDF выглядит нормальноПричина в кодировке шрифта внутри файла. Чистка переносов строк тут не поможет; поищите другую выгрузку документа.
Иллюстрация: коралловая стрелка зигзагом перескакивает между двумя колонками страницы

У проблемы с колонками своя причина. Если вы переводите, а не извлекаете текст, по той же причине путается порядок в переведённых двухколоночных статьях — подробнее в материале Порядок текста в переведённом двухколоночном PDF сбился?.

Когда исправлять переносы строк?

Когда порядок уже правильный. В извлечённом тексте предложения часто обрываются в конце каждой напечатанной строки, и хочется соединить всё сразу. Но если две колонки ещё перемешаны или посреди абзаца остался колонтитул, соединение строк лишь склеит не те куски.

Когда порядок верный, обычно безопасно соединить одиночные переносы внутри абзацев и сохранить пустые строки между ними. Заголовки, списки и дефисы в конце строк требуют отдельного внимания. В статье Почему текст, скопированный из PDF, всегда получается искажённым? эти случаи разобраны на реальных примерах «до и после» с помощью инструмента iSomor «Очистка текста».

Иллюстрация: лист с простым текстом, маленькие коралловые отметки рядом с заголовком и короткой строкой, рядом карандаш

Когда простой текст — неподходящий формат?

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

Если на самом деле вы хотите прочитать PDF на иностранном языке, преобразование в TXT с последующим переводом текста отбрасывает этот контекст. iSomor переводит сам исходный PDF с текстом и по возможности сохраняет макет страницы, так что перевод можно читать на своём месте или в виде двуязычного PDF с оригиналом и переводом рядом. Что остаётся на странице, описано в материале Сохраняет ли iSomor макет PDF при переводе?.

Частые вопросы

Почему инструмент сообщает, что читаемого текста нет?

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

Сохраняет ли TXT макет PDF?

Нет. Текст следует порядку, сохранённому в PDF, восстанавливаются только простые переносы строк. Колонки, таблицы и математическая запись могут перемешаться, поэтому проверки выше так важны.

Какие номера страниц вводить?

Позиции в файле, начиная с 1 и считая обложку. Например, 1-3, 5 выбирает первые три страницы и пятую. Если страница указана в диапазоне дважды, она извлекается один раз, в том порядке, в каком вы её ввели.

Что за странный символ между страницами?

Скопированный текст и TXT разделяют страницы символом перевода страницы. В зависимости от редактора он может быть невидимым или отображаться как маленький значок или ^L. Его можно оставить как метку страницы или удалить.

Можно ли перевести в текст PDF, защищённый паролем?

Инструментом iSomor «PDF в текст» — нет. Он не открывает PDF, защищённые паролем, и документы, в которых запрещено копирование. Используйте незащищённую копию, которую вам разрешено обрабатывать.

Бесплатный инструмент: PDF в текст, работает локально в браузере