Вкратце, я не вижу ни одного существующего модуля 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.