Как я могу прочитать свойства документа PDF, используя Perl и CAM :: PDF? - PullRequest
4 голосов
/ 17 ноября 2011

Я хочу прочитать некоторые свойства документа PDF с помощью Perl. У меня уже установлена ​​ CAM :: PDF в моей системе.

Можно ли использовать этот модуль для чтения свойств документа PDF? Если да, может кто-нибудь привести пример или обратиться к соответствующей подпрограмме, которая делает это?

Или я должен использовать другой модуль? Если да, какой модуль?

Ответы [ 2 ]

7 голосов
/ 17 ноября 2011

Я не знаю много о 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 Developer Support',
          'Title' => 'U3D Supported Elements'
        };
6 голосов
/ 07 мая 2012

Мне нравится ответ 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";
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...