добавить дубликат (скрытый) текстовый слой в PDF для дополнительного поиска - PullRequest
4 голосов
/ 27 октября 2010

Моя проблема:

У меня есть PDF-файл со множеством римских символов со сложными диакритическими знаками (например, ṣ, ś, ṝ, ǎ и т. Д.). Чтобы упростить поиск в pdf, я хотел бы добавить дополнительный слой, почти как в случае с hocr, где тот же текст присутствует без диакритических знаков.

При использовании полнотекстовых поисковых систем я могу индексировать несколько терминов в одной и той же позиции (в векторе) - здесь я хотел бы добиться того же эффекта.

Я много читал о добавлении слоя hocr к отсканированным изображениям, но я действительно хочу дублировать текстовый слой, передать его через скрипт, который удаляет диакритические знаки (достаточно просто), а затем добавляет его обратно как скрытый слой с возможностью поиска.

У кого-нибудь есть предложения? (Решения с участием любой платформы, языка, библиотеки или набора инструментов будут полезны!)

Спасибо:)

Редактировать: пожалуйста, дайте мне знать, если вопрос неясен.

Ответы [ 2 ]

6 голосов
/ 25 ноября 2010

Ну, у меня есть (немного уродливое и хакерское) решение, поэтому я решил поделиться им.

Я использую PDFMiner для извлечения текста вместе с координатами. Затем я использую ReportLab , чтобы записать нормализованные версии текста в новый PDF-файл, в той же позиции, что и скрытый текст. Чтобы правильно расположить позиции, я обнаружил, что должен был использовать точно такой же шрифт, поэтому я использовал комбинацию FontForge и MuPDF , чтобы извлечь необходимый шрифт из оригинального pdf.

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

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

1 голос
/ 25 ноября 2010

Я написал что-то похожее, чтобы добавить текст с возможностью поиска путем распознавания изображений и преобразования его в PDF в C #.Я использовал QuickPDF с www.quickpdf.com для создания скрытых белых текстовых объектов поверх изображения, и это работало достаточно хорошо.

В вашем случае QuickPDF позволил бы вам извлекать текстовые строки вместе с ограничивающими рамками и шрифтомподробности.Затем вы можете нормализовать ваш текст и создать невидимые текстовые объекты, используя существующий шрифт и информацию о положении, а затем сохранить его в новом файле.

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

QuickPDF - это коммерческая библиотека.Если ваше решение работает хорошо для вас, то нет смысла покупать коммерческий движок.Хорошая вещь заключается в том, что для этого требуется только 1 SDK, и вы бы посмотрели его, если бы у вас было более нескольких PDF-файлов для конвертации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...