Записать байты PDF файла в файл с помощью Perl? - PullRequest
2 голосов
/ 08 марта 2011

Я читаю файл PDF в массив байтов byte[] и отправляю его в веб-службу Perl SOAP :: Lite.Как только служба Perl получит этот массив байтов, я бы хотел записать их в файл (с расширением PDF, конечно).

Как мне этого добиться?Все примеры, которые я могу выкопать, предполагают, что я хотел бы начать с открытия файла, чтения, затем записи ... но что, если у вас есть только необработанные данные для работы?

Ответы [ 2 ]

4 голосов
/ 08 марта 2011

Я не думаю, что массив байтов - это хорошее использование структур данных 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;
1 голос
/ 08 марта 2011

Это работает для вас?Мой Perl немного ржавый.

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