Симпатичный просто, я должен разорвать текст из нескольких PDFs (довольно много на самом деле) для анализа содержания прежде, чем засунуть его в базу данных SQL.
Я нашел некоторые довольно поверхностные свободные библиотеки C# такой работой (лучший использует iTextSharp), но существуют многочисленные ошибки форматирования, и некоторые символы скремблированы и много времени существуют пробелы ('') ВЕЗДЕ - в словах, между каждой буквой, огромными блоками того, что они поднимали несколько строк, все это кажется немного случайным.
Есть ли любой простой способ сделать это, что я полностью пропускаю (довольно вероятно!) или это определенная трудная задача, которая включает преобразование извлеченных значений байта в буквы надежно?
Может быть некоторые трудности в этом надежно. Проблема в том, что PDF представляет собой презентацию формат , который придает большое значение для хорошей типографии. Предположим, вы просто хотели выводить одно слово: Нажмите .
Двигатель рендеринга PDF может выводить это как 2 отдельные вызовы, как показано в этом псевдо-коде:
moveto (x1, y); output ("T")
moveto (x2, y); output ("ap")
Это будет сделано, потому что значение по умолчанию Kerning (межбуквенное расстояние) между буквами T И может быть не приемлемо для двигателя рендеринга, или может быть добавление или удаление некоторого микро пространства между символами для получения полностью обоснованной линии. То, что это, наконец, приводит к тому, что фактические фрагменты текста, найденные в PDF, очень часто не полны слов, а из них.