特定のフォルダー内の 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