如何使用 Perl 的 Mason 输出 PDF 文件?



我必须编写从.pdf文件中获取代码并将其复制到任何其他pdf文件中。我为打开文件而编写的代码如下:

<%args>
$fullname
$filename
</%args>
<%init>
use IO::File;
$r->content_type('application/pdf');
$r->header_out( 'Content-disposition' => "attachment; filename=$filename" );

my $tmpfile = $filename;
my $forread = new IO::File "< $fullname";
my @lines = <$forread>;

foreach my $key (@lines){ 
print $key;
}
return $fullname;
</%init>

其中文件名是要将 PDF 内容保存到的文件的名称,"全名"是从中获取内容的 PDF

您当前正在阅读文本文件。您应该首先binmode非文本(如PDF)。并且,切勿使用间接对象语法

my $fh = IO::File->new($fullname, 'r');
$fh->binmode(1);

所以试试这样的东西,改编自梅森书。

use Apache::Constants qw(OK);
my $fh = IO::File->new($fullname, 'r');
$fh->binmode(1);
$m->clear_buffer; # avoid extra output (but it only works when autoflush is off)
$r->content_type('application/pdf');
$r->send_http_header;
while ( my $data = $fh->getline ) {
$m->print($data);
}
$fh->close;
$m->abort;

相关内容

  • 没有找到相关文章

最新更新