【问题标题】:Write PDF file bytes to a file with Perl?使用 Perl 将 PDF 文件字节写入文件?
【发布时间】:2011-07-10 18:56:34
【问题描述】:

我正在将 PDF 文件读入字节数组 byte[] 并将其发送到 Perl SOAP::Lite Web 服务。一旦 Perl 服务接收到这个字节数组,我想将它们写入一个文件(当然带有 PDF 扩展名)。

我怎样才能做到这一点?我可以挖掘的所有示例都假设我想从打开文件开始,读取,然后写入......但是如果只有原始数据可以使用呢?

【问题讨论】:

    标签: perl file pdf soap file-io


    【解决方案1】:

    我认为字节数组不能很好地使用 perl 数据结构,这样会浪费大量内存。只需使用字符串作为文件内容并将其写入二进制文件(open 中的:raw 设置):

    my $pdf_data = 'contents of PDF ...';
    open my $ofh, '>:raw', 'output.pdf'
        or die "Could not write: $!";
    print {$ofh} $pdf_data;
    close $ofh;
    

    【讨论】:

    • 此代码确实创建了一个文件,但是,该文件似乎以某种方式损坏。想法?
    • @YourMomzThaBomb - 确保在所有方面(发送和接收)都使用二进制模式,以防止不必要的换行转换。使用一些二进制差异工具来确定差异。
    【解决方案2】:

    这对你有用吗?我的 Perl 有点生锈了。

      open(OUTFILE,">>output.pdf"); 
      binmode OUTFILE;
      foreach my $byte (@bytes){
        print OUTFILE $byte;
      }
      close(OUTFILE);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-08
      • 2022-01-10
      • 1970-01-01
      • 1970-01-01
      • 2013-09-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多