我正在使用Wicked PDF生成一个报告,该报告显示由jvectormap生成的Map和使用Google Charts生成的条形图 .
我正在使用这两个宝石'wicked_pdf'和'wkhtmltopdf-binary-edge' . 我已经在50000m的respond_to方法上设置了JavaScript延迟,在初始化器上我们已经指定了所需的邪恶宝石的路径 . 然后我使用pdf_layout.html.erb设置pdf生成 .
这是我正在谈论的文件:Gemfile:
Gemfile
gem 'wicked_pdf'
gem 'wkhtmltopdf-binary-edge'
控制器:respond_to格式
format.pdf do
@is_pdf = true
pdf = WickedPdf.new.pdf_from_string(render_to_string("reports/show.html.erb",
encoding: "UTF-8",
layout: "reports/layout_pdf.html.erb",
page_size: "Letter",
margin: { bottom: 0,
top: 0,
left: 0,
right: 0, },
javascript_delay: 50000,
))
send_data pdf, :filename => "resume.pdf", :type => "application/pdf", :disposition => "attachment"
end
PDF布局:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
<title>PDF Generation</title>
<%= csrf_meta_tags %>
<%= wicked_pdf_stylesheet_link_tag 'report' %>
<%= wicked_pdf_stylesheet_link_tag 'pdfreport' %>
<%= wicked_pdf_stylesheet_link_tag 'ionicons' %>
<%= wicked_pdf_stylesheet_link_tag 'font-awesome' %>
<%= wicked_pdf_stylesheet_link_tag 'import-bootstrap' %>
<%= wicked_pdf_stylesheet_link_tag 'jquery-jvectormap-2.0.3' %>
<%= wicked_pdf_javascript_include_tag 'jquery' %>
<%= wicked_pdf_javascript_include_tag 'jquery-jvectormap' %>
<%= wicked_pdf_javascript_include_tag 'jquery-jvectormap-world-mill' %>
<%= wicked_pdf_javascript_include_tag 'jquery-jvectormap-world-en' %>
<%= wicked_pdf_javascript_include_tag 'market_map' %>
<%= wicked_pdf_javascript_include_tag 'number_pages' %>
<%= wicked_pdf_javascript_include_tag 'highcharts' %>
<%= wicked_pdf_javascript_include_tag 'https://www.gstatic.com/charts/loader.js' %>
</head>
<body onload="number_pages">
<div id="content">
<%= yield %>
</div>
</body>
</html>
Map 和图表显示在HTML在线视图中,但在生成pdf时则不显示 .
我已经尝试了Stack Overflow中的每个相关答案以及gem中的问题,但没有运气 .