Как извлечь содержимое файла PDF в строковые переменные - PullRequest
0 голосов
/ 28 января 2019

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

Пример: у меня есть файл PDF (см. Пример ниже: MyPdfFile)Из этого файла я хочу извлечь коды товаров (A и B), количества (3 и 2) и цены (10 и 20) и вставить их в базу данных (таблица: ORDERS).

MyPdfFile

Заранее благодарим за помощь.

1 Ответ

0 голосов
/ 28 января 2019

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

my $output_of_pdftotext = `pdftotext $pdf_file`;

или

my @output_of_pdftotext = `pdftotext $pdf_file`;

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

ENCODINGS CHARACTER

Отслеживание,ОП спрашивает:

[T] o распаковка содержимого pdf в stdout poppler работает отлично, но у меня небольшая проблема с отображением некоторых слов, содержащих акценты, например: désignation (в pdf)= Подпись DÃ © в стандартном выводе?

Кодировка символов utf-8 кодирует «é» с двумя байтами C3 A9 (шестнадцатеричный).Кодировка iso-8859-1 кодирует «Ã ©» с теми же двумя байтами.Ваша «подпись» явно закодирована как utf-8, что нормально, поэтому ваш стандартный вывод верен.Однако, по-видимому, ваш терминал хочет отображать iso-8859-1.Если это так, то ваш терминал неправильно интерпретирует стандартный вывод.

Вы можете сказать pdftotext использовать iso-8859-1 (я оставляю это вам в качестве упражнения, чтобы прочитать страницу руководства и выяснить, каксделай это).Тем не менее, я бы порекомендовал вам вместо этого настроить терминал на отображение utf-8.

Как настроить терминал на отображение utf-8?Это зависит от того, какой терминал вы используете.Я не знаю ваш терминал.На моем терминале легко изменить кодировку.Возможно, несколько минут изучения и экспериментов с настройками и настройками вашего терминала покажут вам, как перейти на utf-8.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...