2011-03-01 136 views
6

如果有人有兴趣节省在由PDFKit中间件宝石所示的文件系统中的PDF文件,然后这里是......保存PDF文件

  1. 覆盖中间件的call方法。 rb文件。
  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响应。如果您有任何进一步的查询,然后继续。

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

+0

我可能会更好地发布这个问题的形式,然后回答并接受你自己的问题。这现在被永久列为未答复的问题。 – 2013-06-25 21:49:41

+0

只是另一个有趣的提醒,请将您的编辑转换为答案:) – Ryan 2013-07-18 01:35:01

+0

我编辑了问题的一部分,并将其添加为答案。 – 2013-08-01 17:10:24

回答

1

如果有人有兴趣节省在由PDFKit中间件宝石所示的文件系统中的PDF文件,然后这里是......

  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响应。如果您有任何进一步的查询,然后继续。

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

+0

这个提问是被提问者自己提供的。我正在将其改为Q&A格式 – 2013-08-01 17:09:17