2015-04-22 2 views
1

Мой клиент должен иметь CSV с именем, фамилией, DOB из своей базы данных учета.Как извлечь таблицу из плохо отформатированного PDF-файла?

Проблема заключается в том, что их учетное программное обеспечение «находится в облаке» (следовательно, на чужом компьютере и свободно доступно от любого человека в мире), и все это может сделать с помощью очень плохо отформатированной «приветственной карточки pdf», , например,

hi <newline> 
<lots of spaces>my name is %name% <lots of spaces> %surname% 
<lots of newlines and spaces to simulate text alignment to the right>I was born in %dob 
<newpage> 

Итак, все, что я могу получить, это PDF-файл на 500 страниц с этим непригодным для использования контентом.

Есть ли способ извлечь данные из такого файла?

+1

уверен, но если формат является то, что глупо, вы в течение многих строка проб и ошибок и операции с регулярным выражением ... удачи. –

+1

Если форматирование на каждой странице одинаково, то вырезать регулярное выражение для извлечения данных не должно быть большой проблемой. – Robert

ответ

2

Важно знать, нужно ли вам делать это несколько раз или только один раз в один файл на 500 страниц. Я буду считать только один раз.

В этом случае получите PDF, преобразованный в XML (если это вообще возможно) или текстовый файл (доступно много конвертеров - просто Google).

Тогда важно знать, отформатированы ли все «записи» одинаково - так и формат: .... имя ... фамилия ... доб ... адресная линия1 .... (где ... это то, что вам не нужно)

Всегда есть «метки» или «теги», которые говорят вам следующее: «адресная строка 1» или если значение пропущено, вы можете сказать?

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

1

Я сделал это! Спасибо за подсказки, это то, как я сделал бесполезное PDF стать полезным CSV:

  1. я преобразовал PDF в TXT, используя cloudconvert.com
  2. Я наблюдал, как файл был с cat -A
  3. I заметил, что существует новая строка перед каждыми полезными данными
  4. Я заметил, что каждая страница закончилась FORM FEED характера
  5. Я заменил все символы новых строки с ;
  6. I R eplaced каждый FORM FEED символ с символом новой строки
  7. Я импортировал (новоиспеченный) CSV в LibreOffice и я удалил бесполезных столбцы