Как справиться с проблемами кодировки символов Юникода при преобразовании документов из PDF в текст - PullRequest
4 голосов
/ 20 сентября 2011

Я пытаюсь извлечь текст из PDF. PDF содержит текст на хинди (Unicode). Утилита для извлечения, которую я использую, - Apache PDFBox (http://pdfbox.apache.org/).). Экстрактор извлекает текст, но текст не распознается. Я пробовал переключаться между многими кодировками и шрифтами, но ожидаемый текст все еще не распознается. Вот пример: Скажи, что текст в PDF: पवार
Что выглядит после извлечения: ̄Ö3⁄4ÖÖ ̧ü

есть какие-нибудь предложения?

1 Ответ

3 голосов
/ 20 сентября 2011

PDF по своей сути является форматом для печати и, таким образом, записывает текст в виде серии визуальных символов, а не фактического текста. Первоначально он никогда не задумывался как формат цифрового архива, который все еще присутствует во многих документах. Сложные скрипты, такие как арабский или индийский, которые требуют замены глифов, лигирования и переупорядочения, часто приводят к беспорядку. Обычно вы получаете идентификаторы глифов, которые используются во встроенных шрифтах, которые не имеют никакого сходства с Unicode или фактической кодировкой текста (шрифты представляют собой глифы, некоторые из которых могут быть сопоставлены с кодовыми точками Unicode, но некоторые просто необходимы для внутреннего использования шрифтом, например, варианты глифов на основе контекста или лигатур). То же самое можно увидеть в PDF-файлах, созданных LaTeX, особенно с не-ASCII символами и математикой.

В PDF также есть средства для встраивания текста в текст вместе с визуальным представлением, но это только на усмотрение генерирующего приложения. Я слышал, что Word очень старается сохранить эту информацию при создании PDF-файлов, но многие PDF-генераторы этого не делают (обычно это немного работает для латыни, поэтому, вероятно, почти никто не беспокоится).

Я думаю, что лучшим вариантом для вас, если в PDF нет доступного простого текста, является распознавание текста в PDF как изображение.

...