gpt4 book ai didi

ruby-on-rails - 在 Heroku 上使用 Prawn

转载 作者:数据小太阳 更新时间:2023-10-29 06:46:14 25 4
gpt4 key购买 nike

我们目前正在开发托管在 Heroku 上的 Rails 应用程序。我们正在尝试生成 PDF 并将其推送给用户下载。

我们使用 Prawn 来处理 PDF 生成。

我们目前生成 PDF 的代码是:

Prawn::Document.generate @name[0]+ ".pdf" do

后面是我们所有的代码生成的文件。不幸的是,这会将文档保存到磁盘,这对于托管在 Heroku 上的应用程序是不可能的(据我所知)。

然后我们将它推送给用户使用

send_file "#{Rails.root}/"+@name[0]+ ".pdf", :type =>
'application/pdf',:filename => @name[0]+ ".pdf"

有没有什么办法不用先把文件存盘,直接用Prawn把下载的文件推送给用户呢?如果没有,是否还有其他无需在发送文件之前将文件保存到磁盘即可生成 PDF 的 gem?

最佳答案

虽然很久以前就已经回答了这个问题,但我会为可能想要这样做的其他人发帖。

在当前的 Prawn v0.13.2 中,您也可以调用没有文件名的render。将返回一个字符串,可以使用send_data 将其发送到客户端。模式是:

pdf = Prawn::Document.new
# ... calls to build the pdf
send_data pdf.render,
type: 'application/pdf',
filename: 'download_filename.pdf',
disposition: :inline

这将在浏览器中显示 PDF。如果您想让用户下载它,请省略 , disposition: :inline

当然,只有当文档相当短或您的系统使用不频繁时,您才想这样做,因为在用户下载完成之前,它会消耗 RAM。

关于ruby-on-rails - 在 Heroku 上使用 Prawn,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9674734/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com