Perl で PDF 文書のプロパティを読みたいと思っています。私のシステムには既にCAM::PDFがインストールされています。
このモジュールを使用して PDF ドキュメントのプロパティを読み取るオプションはありますか? はいの場合、誰かが例を挙げたり、これを行う関連サブルーチンを参照したりできますか?
または、別のモジュールを使用する必要がありますか? はいの場合、どのモジュールですか?
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 \''、 '件名'=>'AdobeAcrobat 9.0 SDK'、 'CreationDate' =>'D:20090427125930Z'、 'プロデューサー'=>'AcrobatDistiller 9.0.0(Windows)'、 'Creator' =>'FrameMaker 7.2'、 '作成者'=>'アドビ開発者サポート'、 'タイトル'=>'U3Dでサポートされる要素' };
Sinan Ünür からの 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";
}
}
}