如何使用 Perl 和 CAM::PDF 读取 PDF 文档属性?

发布于 2024-12-16 17:30:02 字数 217 浏览 0 评论 0原文

我想用 Perl 读取一些 PDF 文档属性。我的系统上已经安装了 CAM::PDF

是否可以选择使用此模块来读取 PDF 文档的属性?如果是的话可以 有人给出一个例子或参考执行此操作的相关子程序吗?

或者,我应该使用另一个模块吗?如果是哪个模块?

I want to read some PDF document property with Perl. I already have CAM::PDF installed on my system.

Is there an option to use this module to read the properties of a PDF document? If yes could
someone give an example or refer to the relevant subroutine that does this?

Or, should I use another module? If yes which module?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

装迷糊 2024-12-23 17:30:03

我喜欢 Sinan Ünür 的 PDF::API2 答案。 PDF::API2 非常棒。

我是 CAM::PDF 的作者。抱歉我之前错过了这个问题。 CAM::PDF 附带了一个命令行工具来提取此类数据 (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";
        }
    }
}

I like the PDF::API2 answer from Sinan Ünür. PDF::API2 is awesome.

I'm the author of CAM::PDF. Sorry I missed this question earlier. CAM::PDF comes with a cmdline tool to extract this sort of data (pdfinfo.pl).

My library does not support this officially, but it's easy to do if you don't mind hacking into internals.

#!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";
        }
    }
}
娇妻 2024-12-23 17:30:03

我对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'
        };

I do not know much about CAM::PDF. However, if you are willing to install PDF::API2, you can do:

#!/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 };

Output:

$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'
        };
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文