BookTranslator
BookTranslator

Неправильный текст при копировании из PDF? Сначала проверьте текстовый слой

PDF-файл может выглядеть нормально, но при копировании выдавать не те слова или цифры. Используйте четыре файла-примера, чтобы выявить проблемы с текстовым слоем и выбрать исправление, которое можно проверить.

BookTranslator

BookTranslator Team

9 min read

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

Самая опасная ошибка — это не бессмыслица. Это правдоподобный текст: страница, на которой написано 18 блокнотов , в то время как извлеченный текст говорит 13 блокнотов. Мы создали четыре PDF-файла для скачивания, чтобы сделать это различие очевидным без использования чьих-либо личных документов.

Начните с простой проверки путем копирования и сравнения

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

Что происходитЧто исследоватьПервое полезное действие
Ничего не выделяется или вставка пустаяСтраница может содержать только изображениеПроверьте, выделяет ли средство чтения изображение страницы, а не текст
Буквы стабильно меняются, хотя на странице они выглядят нормальноКодировка символов или сопоставление при извлеченииСравните результат в другой программе для чтения; найдите оригинальный исходный файл или лучший вариант экспорта
Большинство слов читаются, но имена или цифры указаны неверноНеточный текстовый слой, включая старый OCRСравните извлеченный отрывок с видимым сканом
Буквы правильные, но колонки, подписи или сноски отображаются в неправильном порядкеИзвлечение макета и порядка чтенияПротестируйте отдельный столбец или абзац
Копирование отключеноПрава документа или поведение читателяПроверьте права доступа к файлу и запросите у источника пригодную для использования копию

Это лишь подсказки, а не способ определить внутреннее устройство каждого PDF по одному симптому. Руководство Adobe по повторному использованию контента разграничивает контент, состоящий только из изображений, и ограничения на копирование. Ни то, ни другое нельзя автоматически считать поврежденным текстовым слоем. Руководство по извлечению pypdf отдельно описывает изображения, извлечение текста, а также трудности с таблицами и интервалами.

Для длинной книги или отчета записывайте номер страницы PDF, на которой возникает каждая проблема. Чистая титульная страница не говорит о том, будут ли приложение, сканированная вставка или двухколоночная глава копироваться правильно.

Четыре PDF-файла: что показывает страница по сравнению с тем, что возвращает извлечение

Наша тестовая страница содержит четыре исходные строки, в том числе:

Архив содержит 18 блокнотов.

Пункт B-204 прибыл 6 мая.

Мы создали один нормальный цифровой PDF-файл и намеренно сконструировали три альтернативных. Затем мы извлекли их текст с помощью Poppler и pypdf. Оба экстрактора вернули одинаковый текст для каждого файла в этом тесте.

Скачать PDFКак мы это сконструировалиФактический извлеченный результат
Правильный цифровой текстНормальный видимый текст со встроенным шрифтом18 notebooks; B-204; 6 May
Неправильное сопоставление UnicodeИзменено сопоставление извлечения без изменения видимых глифов13 notebooks; несколько строчных a символов стали x
Неправильный скрытый текстСпециально размещенный некорректный невидимый текст поверх изображения страницы13 notebooks; B-2O4; 8 May
Страница только с изображениемИспользовано то же изображение страницы без текстового слояПустой текстовый вывод

Нормально выглядящая цифровая страница может копироваться некорректно

Первые два PDF-файла в нашем сравнении рендерились в идентичные пиксели, однако извлеченный текст у них различался. Во втором файле мы намеренно изменили ToUnicode сопоставление: информацию, используемую для привязки сохраненных кодов символов к тексту в формате Unicode. Видимая цифра осталась прежней 8, в то время как извлечение вернуло 3. В документации pypdf по CMap иллюстрируется этот механизм сопоставления.

Это демонстрирует один из возможных механизмов сбоя, а не утверждение, что каждый поврежденный PDF имеет тот же дефект. Отсутствие одной лишь записи ToUnicode не является нашим диагнозом, а ручное редактирование сопоставлений не представляет собой универсального решения для читателей.

Скан с возможностью поиска может содержать неправильные слова

Третий и четвертый PDF-файлы также рендерились идентично друг другу. Один содержал неправильный невидимый текст, другой не содержал его вовсе. В третьем файле извлечение незаметно изменило и количество, и дату. В коде B-2O4 содержалась буква O, а не цифра 0 , показанная на изображении.

Мы внедрили эти ошибки самостоятельно, чтобы показать тип несоответствия, который может содержать скрытый текстовый слой. Механизм OCR их не генерировал. Четвертый файл демонстрирует противоположное условие: читаемое изображение страницы, для которого у этих средств извлечения текста ничего нет. Это согласуется с документированным ограничением pypdf: он извлекает существующий текст PDF и не распознает слова внутри изображений.

Что этот тест доказывает и чего он не доказывает

10 сентября 2026 года мы проверили четыре одностраничных файла с помощью Poppler 26.08.0 и pypdf 6.10.0. Визуальное сравнение проводилось в Poppler с разрешением 144 dpi. Равенство пикселей сохранялось внутри двух пар, а не во всех четырех файлах: пара на основе изображений прошла дополнительный этап рендеринга.

Это контролируемая демонстрация, а не тест на точность OCR. Она не проверяет многоязычное распознавание, сложные макеты, восстановление в Acrobat, восстановление в OCRmyPDF или загрузку в BookTranslator. Это были специально созданные примеры с известными ошибками, а не слепая оценка.

Исходные текст и результаты сравнения пикселей, инструкции по воспроизведению, а также генератор доступны вместе с файлами. В них используется неизмененный шрифт Noto Sans с входящей в комплект открытой лицензией.

Выберите наименее радикальный следующий шаг

Следующие способы исправления взяты из официальной документации и практической диагностики. Они не являются результатами исправления в нашем эксперименте с четырьмя файлами. Работайте с копией и проверяйте результат, прежде чем заменять важные для вас файлы.

Если у вас есть исходный документ, сначала попробуйте выполнить экспорт заново

Новый PDF-файл из оригинального текстового редактора, издательской системы или файла верстки — хороший первый вариант. Сравните именно тот фрагмент, в котором возникла ошибка. Не считайте, что новое имя файла или успешный экспорт гарантируют корректность текста.

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

Если в скане есть несколько ошибок распознавания, проверьте эти слова

В Acrobat описан процесс в разделе Сканирование и OCR → Исправить распознанный текст. Это позволяет сопоставить подозрительные слова с отсканированным изображением и исправить распознанный текст. Следуйте актуальным инструкциям Adobe по исправлению для интерфейса вашей версии.

Не используйте пустой список подозрительных слов как тест на полноту. Самостоятельно сверяйте имена, даты, идентификаторы и числа, которые вы собираетесь цитировать или переводить. Наш намеренно ошибочный 13 notebooks пример показывает, почему читаемого вывода недостаточно.

Если скрытый текст в целом неверчен, различие между повторным распознаванием и принудительным

Для читателей, использующих инструменты командной строки, OCRmyPDF описывает различные пути для страниц, которые уже содержат текст:

  • --redo-ocr удаляет существующий непечатаемый текст OCR и распознает заново, исключая печатаемый текст из OCR.
  • --skip-text пропускает страницы, содержащие текст. Это не является исправлением существующего неверного текстового слоя.
  • --force-ocr растрирует содержимое страницы и выполняет OCR для полученных изображений.

Эти особенности описаны в документации OCRmyPDF по ошибкам для существующего текста. В версии 17 аналогичные варианты также доступны через --mode; старые флаги остаются псевдонимами.

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

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

Если страницы или языки различаются, не предполагайте, что один параметр подойдет

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

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

Проверьте заменяющий текст перед его использованием

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

  1. Слова: сравнивайте имена и незнакомые термины буква за буквой.
  2. Числа: проверяйте количества, десятичные знаки, даты и идентификаторы, такие как B-204.
  3. Порядок: читайте абзац целиком через переносы строк; проверяйте столбцы и близлежащие подписи отдельно.
  4. Полнота: убедитесь, что нужные вам страницы и отрывки не были пропущены.
  5. Поведение файла: заново откройте сохраненную замену и повторите тест копирования. Если вы зависите от закладок, ссылок или доступной структуры, проверьте и их.

Успешное прохождение выбранных отрывков дает свидетельство только об этих отрывках. Это не подтверждает весь файл целиком. Сохраняйте исходное изображение страницы в качестве эталона, особенно при исправлении цитаты или незнакомого языка.

Переводите только тогда, когда сможете доверять источнику

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

Если вам нужно прочитать весь документ на другом языке, используйте проверенный файл в качестве отправной точки для перевода PDF. Режим распознавания текста (OCR) от BookTranslator восстанавливает переведенный PDF из распознанного содержимого; это не является обещанием исправить существующий текстовый слой или точно воспроизвести исходный макет страницы.

Сохраняйте справочные страницы на этапе перевода. Те же количества и идентификаторы, которые проверялись здесь, относятся к финальному этапу контроля качества перевода PDF. Беглый перевод сам по себе не может подсказать вам, что его источник должен был гласить 18 вместо 13.

Похожие статьи