Как я могу прочитать свойства документа PDF, используя Perl и CAM::PDF?
Я хочу прочитать некоторые свойства документа PDF с Perl. У меня уже есть CAM::PDF, установленный в моей системе.
Можно ли использовать этот модуль для чтения свойств документа PDF? Если да, может ли кто-нибудь привести пример или обратиться к соответствующей подпрограмме, которая делает это?
Или я должен использовать другой модуль? Если да, какой модуль?
2 ответа
Мне нравится ответ PDF::API2 от Синан Юнюр. PDF::API2 - это круто.
Я автор CAM::PDF. Извините, я пропустил этот вопрос ранее. CAM:: PDF поставляется с инструментом cmdline для извлечения данных такого типа (pdfinfo.pl).
Моя библиотека официально не поддерживает это, но это легко сделать, если вы не против взломать внутренности.
#!perl -w
use strict;
use CAM::PDF;
my $infile = shift || die 'syntax...';
my $pdf = CAM::PDF->new($infile) || die;
my $info = $pdf->getValue($pdf->{trailer}->{Info});
if ($info) {
for my $key (sort keys %{$info}) {
my $value = $info->{$key};
if ($value->{type} eq 'string') {
print "$key: $value->{value}\n";
} else {
print "$key: <$value->{type}>\n";
}
}
}
Я не знаю много о CAM:: PDF. Однако, если вы хотите установить PDF:: API2, вы можете сделать:
#!/usr/bin/env perl
use strict; use warnings;
use Data::Dumper;
use PDF::API2;
my $pdf = PDF::API2->open('U3DElements.pdf');
print Dumper { $pdf->info };
Выход:
$ VAR1 = { 'ModDate' => 'D: 20090427131238-07 \ '00 \' ', 'Subject' => 'Adobe Acrobat 9.0 SDK', 'CreationDate' => 'D: 20090427125930Z', 'Producer' => 'Acrobat Distiller 9.0.0 (Windows)', 'Creator' => 'FrameMaker 7.2', 'Author' => 'Поддержка разработчиков Adobe', 'Title' => 'U3D Поддерживаемые элементы' };