我正在阅读PDF文件到字节数组byte[]
,并将其发送到Perl SOAP :: Lite网络服务。一旦Perl服务接收到这个字节数组,我想将它们写入一个文件(当然有一个PDF扩展)。使用Perl将PDF文件字节写入文件?
我该如何做到这一点?我可以挖掘的所有例子都假设我想先打开一个文件,阅读,然后编写......但如果只有原始数据可以使用呢?
我正在阅读PDF文件到字节数组byte[]
,并将其发送到Perl SOAP :: Lite网络服务。一旦Perl服务接收到这个字节数组,我想将它们写入一个文件(当然有一个PDF扩展)。使用Perl将PDF文件字节写入文件?
我该如何做到这一点?我可以挖掘的所有例子都假设我想先打开一个文件,阅读,然后编写......但如果只有原始数据可以使用呢?
我不认为字节数组是很好的使用Perl的数据结构,你会浪费大量的内存这种方式。只需使用字符串文件内容,并将其写入二进制文件(:raw
设置在open
):
my $pdf_data = 'contents of PDF ...';
open my $ofh, '>:raw', 'output.pdf'
or die "Could not write: $!";
print {$ofh} $pdf_data;
close $ofh;
这是否适合您?我的Perl有点生疏。
open(OUTFILE,">>output.pdf");
binmode OUTFILE;
foreach my $byte (@bytes){
print OUTFILE $byte;
}
close(OUTFILE);
此代码创建一个文件,但该文件似乎得到某种方式损坏。想法? – YourMomzThaBomb 2011-03-08 19:47:11
@YourMomzThaBomb - 确保您在所有方面(发送和接收)使用二进制模式,以防止不必要的换行符转换。使用一些二进制比较工具来确定差异。 – bvr 2011-03-08 20:32:08