.Convertor
Меню

Виправте спотворений текст PDF: пояснення зіставлення шрифтів і ToUnicode

Loger

Loger

Oct 16, 2026 · 4 min read

Виправте спотворений текст PDF: пояснення зіставлення шрифтів і ToUnicode

Якщо PDF виглядає правильно, але вставлення в редактор звичайного тексту створює інші символи, перевірте причину перед зміною шрифтів або запуском OCR. Зіставлення між фігурою, намальованою на сторінці, і символом, який вона представляє, може бути неправильним. Correcting these PDF text errors starts with identifying which part of that process failed.

Чому текст виглядає правильно, але копіюється неправильно?

Текстовий вміст PDF може зберігати специфічні для шрифту вихідні коди символів, а не текст Unicode. A PDF reader uses the font and encoding information to locate and draw a glyph. Копіювання також вимагає перекладу цих кодів на значущі символи.

Таким чином, малювання літери A не гарантує, що видобуток поверне A. ToUnicode — це відображення у словнику шрифтів, яке пов’язує вихідні коди символів PDF із послідовностями символів Unicode. Ця різниця між відображенням і вилученням тексту описана в Adobe PDF Reference, розділ 5.9.

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

Що насправді означає відображення шрифтів?

Ці три поняття пов’язані, але не взаємозамінні:

КартографуванняГоловна роль
Таблиця cmap у файлі шрифтуЗіставляє коди символів на індекси гліфів; Підтаблиці Unicode використовують коди Unicode
PDF Кодування; складені шрифти можуть використовувати Encoding CMapІнтерпретує вихідні коди символів PDF і допомагає знайти гліф для малювання
PDF ToUnicodeЗіставляє вихідні коди символів PDF на текст Unicode для копіювання та вилучення

For the first kind, see the Специфікація 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

Рекомендоване читання