2011-03-01 256 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