Как очистить таблицы в тысячах PDF-файлов?

У меня есть около 1500 PDF-файлов, состоящих всего из 1 страницы каждый и имеющих одинаковую структуру (см. http://files.newsnetz.ch/extern/interactive/downloads/BAG_15m_kzh_2012_de.pdf в качестве примера).

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

Я хотел бы сделать это в Node.js, но не смог найти подходящих библиотек для разбора таких вещей. Вы знаете какой-нибудь?

Если это невозможно в Node.js, я мог бы также закодировать его на Python, если есть лучшие доступные методы.


person grssnbchr    schedule 04.08.2014    source источник


Ответы (1)


Я не знал этого раньше, но less обладает волшебной способностью читать pdf-файлы. Мне удалось извлечь данные таблицы из вашего примера pdf с помощью этого скрипта:

import subprocess
import re

output = subprocess.check_output(["less","BAG_15m_kzh_2012_de.pdf"])

re_data_prefix = re.compile("^[0-9]+[.].*$")
re_data_fields = re.compile("(([^ ]+[ ]?)+)")
for line in output.splitlines():
    if re_data_prefix.match(line):
        print [l[0].strip() for l in re_data_fields.findall(line)]
person Andrew Johnson    schedule 04.08.2014
comment
Я немного описал решение, к которому наконец пришел: timogrossenbacher.ch/2014/11/ - person grssnbchr; 29.11.2014