Преобразование PDF или FDF в CSV?

Кажется сумасшедшим, но в то время как Libre Base может экспортировать форму в формате PDF, нет возможности импортировать заполненные данные формы из PDF в базу Libre.

Одна из идей - извлечь данные в формате PDF к FDF (или недружественному CSV), а затем преобразуйте его в дружественный CSV, после чего можно скопировать и вставить данные CSV в базу Libre.

Как конвертировать PDF, FDF или недружественный CSV-файл в дружественный CSV с: Строка 1: «FieldName1, FieldName2, ...» Строка 2: «Value1, Value2, ...»

Полезные файлы на Ge.tt до 2015,02,25: [ ! d8] Супер базовый пустой pdf с «Отправить формат» в виде базы FDF Libre> Формы> Редактировать> Открыть объект базы данных -> Файл> Экспорт в PDF Заполненный PDF, сделанный из (1) Введите данные вручную Извлеченные CSV данные из ( 2) pdftk filled_form-submit_format_fdf.pdf dump_data_fields output filled_form.csv Извлеченные данные FDF из (2) pdftk filled_form-submit_format_fdf.pdf generate_fdf output filled_form.fdf

* Примечание. Вы также можете использовать Libre Base для экспорта пустой формы в виде XML или HTML, но я не знаю, как вводить данных в эти файлы и не импортировать эти данные обратно в базу.

1
задан 13 April 2017 в 15:25

1 ответ

Отвечая особенно на ваш комментарий здесь:

Я хочу, чтобы Base могла декодировать PDF-файл, созданный базой

Нет, не разумно ожидать, что любая программа должна быть в состоянии читать PDF, который он сгенерировал, а не ожидая, что принтер сможет отбросить лист, который он только что распечатал, и вернув вам документ.

PDF - это формат печати / архива. Это, в основном, (1) последовательность инструкций типа «положить слово не разумным в положение x, y на странице». Итак, когда вы видите в формате PDF:

Невозможно сказать компьютерную программу, если это две строки по трем столбцам или две строки на два столбца, содержащие пробелы в нем ( 2). Число 3 может быть равно 2.95. Вы не можете знать, потому что информации просто нет. Так что нет, вы никогда не думаете, что возвращение из PDF в ваши данные должно быть возможным (3).

Однако вы можете попытаться преобразовать информацию в более управляемые вещи, например, pdftotext (4):

[romano:~/tmp] 1 % pdftotext Untitled1.pdf; cat Untitled1.txt
Sheet1

shiny
mint

new
used

3
1

Page 1

... а затем использовать скрипты, ручное редактирование, независимо от того, как его массировать.

Сноски:

(1) действительно, действительно преуменьшение здесь.

(2) На самом деле это 2 на 2.

(3) Я даже видел PDF-файлы, где программа-разработчик продолжала растягиваться, чтобы сделать это практически невозможным, помещая каждый глиф самостоятельно и случайным образом на странице, чтобы затруднить его вмешательство. Нет, я больше не могу найти пример ...

(4) из пакета poppler-utils

2
ответ дан 23 May 2018 в 23:51
  • 1
    Спасибо за Ваш ответ. Хотя я ничего не знаю о кодировании PDF, Base, похоже, генерирует PDF-файл, который содержит больше, чем печать информации. Он содержит информацию полей полей формы, то есть FieldName1 = «CompanyName», Значение1 = "" (и любой может изменить значение последнего). Другие программы (pdftk) могут читать эти значения (см. Мои файлы на Ge.tt). Вот почему я надеялся и предположил неправильно, что Base может прочитать информацию полей полей и импортировать ее. – jtd 27 January 2015 в 21:13

Другие вопросы по тегам:

Похожие вопросы: