Якщо 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.

Що насправді означає відображення шрифтів?
Ці три поняття пов’язані, але не взаємозамінні:
| Картографування | Головна роль |
|---|---|
Таблиця 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:
- Виберіть PDF, а потім виберіть шрифт, який потрібно виправити.
- Порівняйте оригінальні гліфи в сітці та введіть правильний текст під кожним гліфом.
- Експортуйте відремонтований PDF і збережіть оригінал для порівняння.
Зміни застосовуються скрізь, де використовується той самий шрифт і вихідний код. Перевіряйте різні шрифти окремо, навіть якщо їхні назви збігаються. Якщо OCR неправильно розпізнав лише одне слово, глобальне перевідображення символу також може пошкодити текст, який уже був правильним.
Як перевірити ремонт?
Знову відкрийте експортований файл, скопіюйте та знайдіть зразок тексту у вашій цільовій програмі для читання PDF. Перевірте інші випадки того самого коду та шрифтів, які ви не редагували. Порівняйте зовнішній вигляд сторінки та перевірте пунктуацію, лігатури та цифри, а не перевіряйте лише перший неправильний символ.
Деякі PDF-файли також використовують ActualText для подання тексту заміни, що може віддавати перевагу допоміжному програмному забезпеченню. Якщо зміна ToUnicode не вирішує проблему, перевірте це замінення. Поточний інструмент попереджає про ActualText, але не редагує його. Перегляньте PDF Пояснення асоціації.
Для помилок OCR знову виправте або розпізнайте текстовий шар. Якщо у вас є оригінальний файл макета, спробуйте виправити його та експортувати новий PDF. Файли, які не відкриваються або викликають структурні помилки, потребують іншого підходу; див. коли доречно відновити формат PDF.
Коли ви визначили проблему зіставлення символів шрифту, виправте її за допомогою локальний інструмент відновлення тексту PDF. Файли обробляються у вашому браузері без їх завантаження. Ви все одно повинні перевірити скопійований текст і вигляд сторінки після експорту.


