.Convertor
Меню

Исправление искаженного текста PDF: объяснение сопоставления шрифтов и ToUnicode

Loger

Loger

Oct 16, 2026 · 4 min read

Исправление искаженного текста PDF: объяснение сопоставления шрифтов и ToUnicode

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

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

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

Таким образом, рисование буквы A не гарантирует, что извлечение вернет A. ToUnicode — это сопоставление в словаре шрифтов, которое связывает исходные коды символов PDF с последовательностями символов Unicode. Это различие между отображением и извлечением текста описано в Справочник Adobe PDF, раздел 5.9.

Исходный код PDF следует по отдельным путям к видимому глифу и извлеченному тексту Unicode; неправильное сопоставление ToUnicode может привести к несогласию результатов

Что на самом деле означает отображение шрифтов?

Эти три понятия связаны, но не являются взаимозаменяемыми:

КартированиеГлавная роль
Таблица cmap внутри файла шрифта.Сопоставляет коды символов с индексами глифов; В подтаблицах Unicode используются коды Unicode.
Кодировка PDF; составные шрифты могут использовать Encoding CMapИнтерпретирует исходные коды символов PDF и помогает найти глиф для рисования.
PDF ToUnicodeСопоставляет исходные коды символов PDF с текстом Unicode для копирования и извлечения.

Для первого типа см. OpenType cmap спецификация. Обсуждаемый здесь ремонт нацелен на третий; он не перестраивает файл шрифта и не заменяет глифы на странице.

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

Сначала проверьте, является ли отображение проблемой

Скопируйте короткий отрывок в текстовый редактор и сравните его с исходной страницей:

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

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

Как исправить скопированный текст, используя исходные глифы?

Предположим, что исходный код <0001> в определенном шрифте рисует A, но неправильно сопоставляется с 错 (U+9519). Это иллюстративный фрагмент сопоставления, а не полный файл CMap:

Before: <0001> <9519>
After:  <0001> <0041>

<0001> — это исходный код PDF в этом шрифте, а не символ Unicode U+0001. Сопоставление его с U+0041 указывает, что глиф представляет A. ligature (несколько букв, использующих один глиф) также может нуждаться в сопоставлении с несколькими символами Unicode, например fi.

Убедившись, что восстановление сопоставления подходит, используйте PDF инструмент для восстановления текста:

  1. Выберите PDF, затем выберите шрифт для исправления.
  2. Сравните исходные глифы в сетке и введите правильный текст под каждым глифом.
  3. Экспортируйте отремонтированный PDF и сохраните оригинал для сравнения.

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

Как проверить ремонт?

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

Некоторые PDF-файлы также используют ActualText для предоставления замещающего текста, который может предпочесть вспомогательное программное обеспечение. Если изменение ToUnicode не решает проблему, проверьте наличие этого переопределения. Текущий инструмент предупреждает о ActualText, но не редактирует его. См. PDF Объяснение ассоциации.

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

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

Темы

PDF

PDF

Опубликованные статьи15

Рекомендуем к прочтению