Обслуживание объединенного PDF в браузере с помощью библиотеки CAM :: PDF - PullRequest
0 голосов
/ 13 марта 2012

EDIT:

Я снова изменил свой вопрос:

Я использую эту библиотеку для манипулирования файлами PDF.

Я использую этот код для передачи вывода в браузер:

#!perl
use strict;
use warnings;

use lib "..\\mymodules\\CAM-PDF-1.57\\lib";

use CAM::PDF;
my $pdf = CAM::PDF->new('doc1.pdf');

# append the other file
my $anotherpdf = CAM::PDF->new('doc2.pdf');

$pdf->appendPDF($anotherpdf);

print "Content-Type: application/pdf\n";
print "Content-Disposition: inline\n\n";

print "Content-Transfer-Encoding: binary\n";
print "Accept-Ranges: bytes\n\n";

$pdf->output();

Результат:

Я получаю только первый файл PDF, загруженный в браузер.

Проблема решена:

Мне пришлось добавить $pdf->clean(); перед командой $pdf->output();, и она отлично работает. :)

1 Ответ

0 голосов
/ 13 марта 2012

Вы сказали, что нет переменной TEMP, но ваш код использует ее:

$pdf->cleanoutput($ENV{"TEMP"} . '\\out1.pdf');

Попробуйте установить какое-либо значение (я предполагаю, что вы используете Windows)

$ENV{'TEMP'}='c:\tmp';
mkdir($ENV{'TEMP'});
die "$ENV{'TEMP'} not exists" if ! -d $ENV{'TEMP'};
$pdf->cleanoutput($ENV{"TEMP"} . '\\out1.pdf');

Почему вы используете // в каком-то пути? Нравится: используйте lib ".. \ mymodules \ CAM-PDF-1.57 \ lib"; При использовании оператора lib всегда используйте полный путь.

...