Извлечение текста от PDFs в [закрытом] C#

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

Я нашел некоторые довольно поверхностные свободные библиотеки C# такой работой (лучший использует iTextSharp), но существуют многочисленные ошибки форматирования, и некоторые символы скремблированы и много времени существуют пробелы ('') ВЕЗДЕ - в словах, между каждой буквой, огромными блоками того, что они поднимали несколько строк, все это кажется немного случайным.

Есть ли любой простой способ сделать это, что я полностью пропускаю (довольно вероятно!) или это определенная трудная задача, которая включает преобразование извлеченных значений байта в буквы надежно?

27
задан Bjarki Heiðar 24 April 2018 в 12:36
поделиться

1 ответ

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

Двигатель рендеринга PDF может выводить это как 2 отдельные вызовы, как показано в этом псевдо-коде:

moveto (x1, y); output ("T")
moveto (x2, y); output ("ap")

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

22
ответ дан 28 November 2019 в 05:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: