Как мне использовать CAM :: PDF :: Annot (модуль perl) без ошибок? - PullRequest
0 голосов
/ 07 марта 2011

Я пытался использовать CAM: PDF :: Annot для своей основной цели, объединяя аннотации двух PDF-файлов, но безуспешно.

Я пытался эмулировать то, что содержится в кратком обзоре пакета на CPAN, но продолжаю выдавать ошибку.

Код в кратком описании CPAN (в виде законченного сценария) или любой совет будет полезен.

Страница CPAN: http://metacpan.org/pod/CAM::PDF::Annot

Пока у меня есть:

#!/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 Ответ

2 голосов
/ 07 марта 2011

Хорошо, метод getAnnotations() возвращает ссылку на массив, тогда как метод appendAnnotation() принимает объект аннотации, а не ссылку на массив. Попробуйте сделать то, что написано в документации:

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

Вы не просматриваете все ссылки на аннотации, полученные из getAnnotations(), вы просто пытаетесь вставить туда полную ссылку на массив, и это не сработает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...