2014-01-25 49 views
0

有沒有一種方法可以在頁面加載後使用惡意PDF創建PDF?如何在頁面加載後使用Wicked-pdf生成pdf?

我想在加載後創建pdf,因爲我使用javascript在頁面加載後創建了pdf的內容。

<div id="content"> 
    <!-- some content --> 
</div> 

我想創建一個PDF文件使用惡搞的pdf,但有沒有辦法在頁面加載後創建它?

非常感謝。

回答

1

首先,您可以在加載之前創建PDF,因爲wkhtmltopdf可以處理並執行JavaScript。如果尚未完全運行JS,則可能需要調整:javascript_delay設置。

否則,你可能要打包的HTML中#content#,並把它作爲一個參數去的PDF創建端點,像這樣的東西:

$(function(){ 
    form = $('<form action="/pages/report.pdf"><input id="form_content" name="form_content"></form>'); 
    html_content = $('#content').html(); 
    $('#form_content').val(html_content); 
    form.submit(); 
}); 

而且端點是這樣的:

format.pdf do 
    @content = params[:form_content] 
    render :pdf => 'report.pdf' 
end 

和使用@content的圖:

<%= @content %> 

該E ndpoint可能不應該用html視圖執行雙重任務,因爲注入的內容可能會讓你面臨CSRF或XSS問題。