Задача: Добавьте некоторые данные (скажем LocalTime) в PDF файл (Файл PDF содержит форму)обработки PDF-файлы с Javascript усиленных форм с использованием Perl
Пример файла:http://www.immihelp.com/nri/forms/passport-application-form.pdf
У меня есть до сих пор пробовал 3 популярных модуля. PDF::API2, CAM::PDF и PDF::Reuse.
Попробуйте 1:PDF::API2
#!/usr/bin/perl
use strict;
use warnings;
use PDF::API2;
my $pdf = PDF::API2->open('form.pdf');
Error: The PDF file uses a cross-reference stream, which is not yet supported (see Know n Issues in the PDF::API2 documentation) at C:\Perl\site\lib/PDF/API2/Basic/PDF/ File.pm line 1048.
Попробуйте 2:CAM::PDF
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dump qw(dump);
use CAM::PDF;
my $pdf = CAM::PDF->new('form.pdf') or die "failed";
$pdf->appendPageContent(1, localtime);
$pdf->save();
Error: This stream is too complex for me to write... Giving up
Я проверил код и нашел этот модуль не поддерживает сложные S treams в данный момент
# TODO: Handle more complex streams ...
die "This stream is too complex for me to write... Giving up\n";
Когда я попытался cleanoutput
метод вместо save
он работал правильно, но при открытии PDF-я получаю ниже сообщение. Я также заметил, что теперь я не могу ввести данные в форму.
Полный URL изображения: http://i.stack.imgur.com/anAMW.png
Попробуйте 3:PDF::Reuse
#!/usr/bin/perl
use strict;
use warnings;
use PDF::Reuse;
prFile('output.pdf');
prForm("form.pdf");
prPage();
prText(100,100, localtime);
prEnd();
Выпуск: Приведенный выше код правильно добавляет данные, но 2-ю страницу оригинала PDF нет дольше доступно в output.pdf
.
Я заметил, что Мерлин (Randal L Schwartz) также задал аналогичный вопрос о perlmonks (http://www.perlmonks.org/?node_id=556764).