0

特定のフォルダー内の PDF を一覧表示して圧縮する関数を作成しましたが、何らかの理由で zip の内容が破損しています。

スクリプトは基本的に次のことを行います。 a) 場所にあるような名前の zip ファイルを作成し$batch_idます$target_dir。b) という名前の XML$batch_id(.xml)を zip ルートに追加します。c) フォルダ内で見つかったすべての PDFをzip 内の$target_dir/pdf/フォルダに追加します。/pdf/

結果: zip が正常に作成され、XML を抽出できますが、PDF が破損しているように見えます (ファイル サイズが非常に小さく、開くことができません)。

def zip_batch
  puts "Zipping batch..."
  require 'zippy'

  Zippy.create("#{$target_dir}"+"\\"+"#{$batch_id}"+".zip") do |zip|
    zip ["#{$batch_id}"+".xml"] = File.open("#{$target_dir}"+"\\"+"#{$batch_id}"+".xml")
    Dir.glob("#{$target_dir}"+"/pdf/*.pdf").each do |filename|
      puts "   -> Adding "+ filename.gsub("#{$target_dir}"+"/","")
      puts filename
      zip[filename.gsub("#{$target_dir}"+"/","")] = File.open(filename)
    end
  end
end
4

1 に答える 1