我正在閱讀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