2011-03-07 3 views
0

J'ai essayé d'utiliser CAM: PDF :: Annot pour son but le plus fondamental, agréger les annotations de deux pdf, mais je n'ai pas eu de succès.Comment utiliser CAM :: PDF :: Annot (module Perl) sans erreur?

J'ai essayé d'émuler ce qui est dans le synopsis du paquet sur le CPAN, mais je continue à trouver une erreur.

Le code dans le synopsis CPAN (en tant que script terminé), ou tout autre conseil serait utile.

page CPAN: http://metacpan.org/pod/CAM::PDF::Annot

Jusqu'à présent, j'ai:

#!/usr/bin/perl 
use strict 
use CAM::PDF; 
use CAM::PDF::Annot; 

sub main() 
{ 
    my $pdf = CAM::PDF::Annot->new('testAnnotPDF.pdf'); 
    my $otherDoc = CAM::PDF::Annot->new('testAnnotPDF2.pdf'); 
    my $page = 1; 
    my %refs; 
    my $hrefs = \%refs; 
    for my $annotRef (@{$pdf->getAnnotations($page)}){ 
     $otherDoc->appendAnnotation($page, $pdf, $annotRef, $hrefs); 
    } 
    $otherDoc->output('pdf_merged.pdf'); 
} 
exit main; 
+1

Quel code avez-vous écrit qui provoque cette erreur? – CanSpice

Répondre

2

Eh bien, la méthode getAnnotations() semble renvoyer une référence de tableau, alors que la méthode appendAnnotation() prend un objet d'annotation et non une référence de tableau. Essayez de faire ce que le documetation dit:

for my $annotRef (@{$pdf->getAnnotations($page)}) { 
    $otherDoc->appendAnnotation($page, $pdf, $annotRef, \%refs); 
} 

Vous n'êtes pas en boucle sur toutes les références d'annotation que vous revenez de getAnnotations(), vous êtes juste essayer de coller la référence complète du tableau là-bas, et cela ne va pas travailler.

Questions connexes