PDF извлечение данных - нужны предложения - PullRequest
1 голос
/ 17 марта 2011

Я создал инструмент извлечения pdf .Образец экрана прилагается.enter image description here Пользователь может загрузить файл PDF и выбрать область данных, которую он хочет.Затем я беру pdf-координаты и номер страницы, а затем сохраняю их как шаблон.Как только пользователь предоставит список файлов pdf, инструмент сможет извлекать данные в соответствии с файлом шаблона. Мой инструмент очень похож на этот.

Теперь проблема в том, что в некоторых файлах PDF часть данных, необходимых для извлечения, перемещается на следующую страницу.(Причиной смещения является то, что я приведу пример . Если вы считаете, что список купленных вами предметов, Место напечатанной "Общая стоимость" зависит от числапредметов, которые вы купили: если длинный список длиннее, то внизу, в середине или около верха).

Поэтому сейчас я думаю о определить структуру pdf вместо получения координат.

Но у меня нет четкой идеи сделать это.Пожалуйста, поделитесь чем-нибудь, вы думаете, что поможет решить эту проблему.Я повторяю еще раз, что я пытаюсь получить данные из PDF-файла.Таким образом, можно захватить структуру файла pdf .

Моя идея заключается в том, что если я смогу идентифицировать структуру, тогда я могу сказать, где находится значение.Например, я попытался преобразовать pdf в html и попытаться перемещаться по значениям тега html.(body-> div-> table-> td-> etc.) Но это не удалось ..: (

Ответы [ 3 ]

3 голосов
/ 17 марта 2011

Формат файла PDF включает дополнительный набор метатегов.Если они используются, файл будет иметь некоторую структуру.В противном случае вам не повезло.Я написал сообщение в блоге, рассказывающее, как это выяснить, на http://www.jpedal.org/PDFblog/2010/09/the-easy-way-to-discover-if-a-pdf-file-contains-structured-content/

3 голосов
/ 17 марта 2011

PDF имеет только слабые структуры, ничего похожего на div или контейнеры. Существуют группы слоев и тому подобное, но вы можете рассчитывать только на координаты.

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

0 голосов
/ 08 октября 2018

Вы можете использовать некоторый «якорь», такой как «ORDER QTY», а затем захватывать данные, относящиеся к этому. Взгляните на www.ivytools.net - в этом инструменте вы можете определить правила, которые определяют, как искать значения относительно другого текста в документе. В вашем примере это будет что-то вроде:

p.Find("ORDER QTY").Down()
...