如何在加载页面后使用Wicked-pdf生成pdf?

时间:2014-01-25 06:40:51

标签: wicked-pdf

有没有办法在加载页面后使用wicked pdf创建pdf?

我想在加载后创建pdf,因为我在使用javascript加载页面后创建了pdf的内容。

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

我想使用wicked pdf创建一个pdf文件,但有没有办法在页面加载后创建它?

非常感谢。

1 个答案:

答案 0 :(得分:1)

首先,您可以在加载之前创建pdf,因为wkhtmltopdf可以处理和执行javascript。如果没有完全运行JS,您可能需要调整:javascript_delay设置。

否则,您可能希望在#content#中打包html,并将其作为参数发送到创建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 %>

此端点可能不应该使用html视图执行双重任务,因为注入的内容可能会导致您遇到CSRF或XSS问题。