我有一个创建pdfs的控制器动作。 我希望能够获取所有pdf并将其保存在用户可以下载的zip文件中。
我的控制器目前只处理一个pdf的创建,我不知道如何
def showpdf
respond_to do |format|
format.html
format.pdf do
pdf = Prawn::Document.new(page_size: "A4",margin: [0,0,0,0])
#pdf creation stuff
send_data pdf.render, filename: 'report.pdf', type: 'application/pdf'
end
end
end
我可以将其更改为生成多个pdf但我不知道在将它们压缩下载之前将它们存储在何处/如何存储...
答案 0 :(得分:-1)
Prawn允许您使用
将生成的pdf保存到本地文件系统pdf.render_file "foo.pdf"
我会在tmp文件夹(/ tmp或RAILS_ROOT / tmp)中创建一个目录,在该文件夹中构建所有必需的zip文件,然后压缩文件夹(使用gem或shell命令),然后执行send_data生成的zip文件。
我会将它包装在一个类方法中,用于为其生成pdf的类,以保持控制器清洁。