2011-11-17 7 views
4

Perl로 PDF 문서 속성을 읽고 싶습니다. 내 시스템에 이미 CAM::PDF이 설치되어 있습니다.Perl 및 CAM :: PDF를 사용하여 PDF 문서 속성을 읽으려면 어떻게해야합니까?

이 모듈을 사용하여 PDF 문서의 속성을 읽을 수있는 옵션이 있습니까? 그렇다면 누군가가 예제를 제공하거나이를 수행하는 관련 서브 루틴을 참조 할 수 있습니까?

아니면 다른 모듈을 사용해야합니까? 그렇다면 어떤 모듈입니까?

답변

6

내가 신안 Ünür에서 PDF : API2 답변을 좋아합니다. PDF :: API2는 굉장합니다.

저는 CAM :: PDF의 저자입니다. 죄송합니다. 이전에이 질문을 놓쳤습니다. CAM :: PDF는 이러한 종류의 데이터 (pdfinfo.pl)를 추출하는 cmdline 도구와 함께 제공됩니다.

내 라이브러리는이 기능을 공식적으로 지원하지 않지만, 내부 라이브러리를 해킹하는 데 신경 쓰지 않으면 쉽게 할 수 있습니다.

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

나는 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' 
     };