【问题标题】:Save PDF file shown by PDFKit middleware保存由 PDFKit 中间件显示的 PDF 文件
【发布时间】:2011-07-06 11:01:28
【问题描述】:

如果有人有兴趣将 PDF 文件保存在 PDFKit 中间件 gem 显示的文件系统中,那么这里就是...

  1. 重写 middleware.rb 文件的call 方法。
  2. 在覆盖中只需替换这一行:

    body = PDFKit.new(translate_paths(body, env), @options).to_pdf
    

    pdf = PDFKit.new(translate_paths(body, env), @options)
    file = pdf.to_file('Your/file/name/path')
    Mymodel.my_method()     #You can write your method here to use that file
    body = pdf.to_pdf   #Here you can change the response body
    

如果您不想给出 pdf 响应,也可以覆盖 response-body 和 content-type。如果您还有任何疑问,请继续。

这个过程真的很有帮助,因为当你的视图文件中有大量的 JavaScript 和 CSS 时,render_to_string 方法将不起作用,即它不会渲染大量的 JavaScript。

【问题讨论】:

  • 我最好以问题形式发布此内容,然后回答并接受您自己的问题。这现在被永久列为未回答的问题。
  • 只是另一个有趣的提醒,请您将您的编辑转换为答案:)
  • 我已编辑部分问题并将其添加为答案。

标签: ruby-on-rails ruby pdfkit


【解决方案1】:

如果有人有兴趣将 PDF 文件保存在 PDFKit 中间件 gem 显示的文件系统中,那么这里就是...

  1. 重写 middleware.rb 文件的call 方法。
  2. 在覆盖中只需替换这一行:

    body = PDFKit.new(translate_paths(body, env), @options).to_pdf
    

    pdf = PDFKit.new(translate_paths(body, env), @options)
    file = pdf.to_file('Your/file/name/path')
    Mymodel.my_method()     #You can write your method here to use that file
    body = pdf.to_pdf   #Here you can change the response body
    

如果您不想给出 pdf 响应,也可以覆盖 response-body 和 content-type。如果您还有任何疑问,请继续。

这个过程真的很有帮助,因为当你的视图文件中有大量的 JavaScript 和 CSS 时,render_to_string 方法将不起作用,即它不会渲染大量的 JavaScript。

【讨论】:

  • 这个答案是提问者自己提供的。我正在把它改成问答格式
猜你喜欢
  • 2016-11-25
  • 1970-01-01
  • 2019-01-29
  • 1970-01-01
  • 2015-03-30
  • 1970-01-01
  • 1970-01-01
  • 2011-08-31
  • 2015-06-12
相关资源
最近更新 更多