5

Perl で PDF 文書のプロパティを読みたいと思っています。私のシステムには既にCAM::PDFがインストールされています。

このモジュールを使用して PDF ドキュメントのプロパティを読み取るオプションはありますか? はいの場合、誰かが例を挙げたり、これを行う関連サブルーチンを参照したりできますか?

または、別のモジュールを使用する必要がありますか? はいの場合、どのモジュールですか?

4

2 に答える 2

8

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でサポートされる要素'
        };
于 2011-11-17T18:36:10.670 に答える
8

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";
        }
    }
}
于 2012-05-07T15:27:50.017 に答える