有没有办法在加载页面后使用wicked pdf创建pdf?
我想在加载后创建pdf,因为我在使用javascript加载页面后创建了pdf的内容。
<div id="content">
<!-- some content -->
</div>
我想使用wicked pdf创建一个pdf文件,但有没有办法在页面加载后创建它?
非常感谢。
答案 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问题。