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

Perl 使用CAM::PDF库将合并的PDF提供给浏览器,perl,cgi-bin,cam-pdf,Perl,Cgi Bin,Cam Pdf,编辑: 我再次改变了我的问题: 我正在使用库操作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文件

我使用以下代码将输出提供给浏览器:

#!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()之前命令,并且它可以完美地工作。:)

您说过没有TEMP变量,但您的代码使用它:

$pdf->cleanoutput($ENV{"TEMP"} . '\\out1.pdf');
尝试将其设置为某个值(我假设您正在使用windows)


为什么在某些路径中使用//?比如:使用lib“.\mymodules\CAM-PDF-1.57\lib”;在use lib语句中,始终使用完整路径。

Hi。谢谢此代码应该从CD运行,要求不写入本地计算机。因此,我想找到一种方法来使用windows的%TEMP%文件夹或其他解决方案。我无法决定自己创建文件夹。非常感谢。
$ENV{'TEMP'}='c:\tmp';
mkdir($ENV{'TEMP'});
die "$ENV{'TEMP'} not exists" if ! -d $ENV{'TEMP'};
$pdf->cleanoutput($ENV{"TEMP"} . '\\out1.pdf');