使用CAM :: PDF库将合并的PDF提供给浏览器

时间:2012-03-12 22:26:08

标签: perl cgi-bin cam-pdf

编辑:

我再次改变了我的问题:

我正在使用this库来处理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 :(得分:0)

你说没有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语句总是使用完整路径。