Чтение таблицы в PDF Itextsharp

Я пытался прочитать PDF-файл с помощью Itextsharp в приложении .NET. Я могу читать отдельные слова без ошибок. Задача, с которой я сталкиваюсь сейчас, — чтение таблицы. У меня есть структура таблицы, как это:

введите здесь описание изображения

Обратите внимание, что здесь некоторые имена столбцов двухстрочные. например, код отдела и идентификационный номер сотрудника.

Поэтому мое требование состоит в том, чтобы прочитать идентификационный номер сотрудника и зарплату, если сотрудник относится к отделу кадров. Для этого я должен проверить, существует ли в файле PDF столбец с именем «Код отдела».

Когда я читаю эту таблицу с помощью iTextsharp, происходит следующее: скажем, часть «Отдел» столбца «Код отдела» находится в позиции 1, но «Код» занимает 5-ю позицию. Это потому, что этот столбец отображается в две строки и есть еще четыре слова существуют в pdf, прежде чем я прочитал часть «Код» в этой колонке. Я полностью застрял в этом :(

Кто-нибудь знает, как убедиться, что имя столбца «Код отдела» существует, и прочитать соответствующие значения из этой таблицы.

Ценю вашу помощь!

С уважением, Джалил


person Jaleel    schedule 19.04.2012    source источник


Ответы (1)


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

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

person Chris Haas    schedule 19.04.2012
comment
Спасибо Крис за помощь! Я пытаюсь найти эти произвольные правила :) - person Jaleel; 19.04.2012