添加 header 后,在 wicked_pdf Rails 中得到空白 pdf 页面
After adding the header getting the blank pdf page in wicked_pdf Rails
我的代码在没有 header 的情况下工作完美,但在添加 header 之后我得到了空白的 pdf 页面。请解决我的问题
def show
@resume = current_user.resume
respond_to do |format|
format.html{ }
format.pdf do
render template: 'student/resumes/show',
pdf: "#{current_user.first_name}.pdf",
# :header => { :content => render_to_string({:template => 'student/resumes/header.pdf.erb'})}
header: {
html: {
template: 'student/resumes/header'},
layout: 'pdf.erb',
handlers: [:erb],
formats: [:pdf]
}
end
end
end
你的右括号放错了地方。 header - html 应该包含所有其他键
def show
@resume = current_user.resume
respond_to do |format|
format.html{ }
format.pdf do
render template: 'student/resumes/show',
pdf: "#{current_user.first_name}.pdf",
# :header => { :content => render_to_string({:template => 'student/resumes/header.pdf.erb'})}
header: {
html: {
template: 'student/resumes/header',
layout: 'pdf.erb',
handlers: [:erb],
formats: [:pdf]
}}
end
end
end
同样的问题我也遇到了代码所以我尝试了很多组合但最后我找到了以下对我有用的解决方案
遵循正确的 HTML DOM 格式,效果非常好:
<!DOCTYPE html>
<html>
<head>
<title></title>
<link href=“https://fonts.googleapis.com/css?family=Roboto:400,700” rel=“stylesheet”>
<%= wicked_pdf_stylesheet_link_tag ‘pdf’ %>
</head>
<body>
<h1>Hello World</h1>
</body>
</html>
以上是页眉示例
另外我在controller中添加了下面的属性来生成PDF
render template: 'backend/report_result/report',
pdf: "test",
header: { html: { template: 'backend/report_result/header'}},
margin: { top: 30, bottom: 20, left: 25, right: 25 }
确保正确使用所有属性以及具有 pdf.erb 格式的视图
如果使用 wicked pdf 生成的 pdf 中有额外的页面,那么
只需在您的 html 代码的最后放置一个 division(或者您可以根据您的代码放置一个 div)。喜欢:
<% @questions.each do |question| %>
<% if question.id == @questions.last.id %>
<div></div>
<% end %>
<% end %>
在 html.put 中添加 division 后,css 中的以下行:
div.alwaysbreak { page-break-before: always; }
div.nobreak:before { clear:both; }
div.nobreak{ page-break-inside: avoid; }
对我有用
我的代码在没有 header 的情况下工作完美,但在添加 header 之后我得到了空白的 pdf 页面。请解决我的问题
def show
@resume = current_user.resume
respond_to do |format|
format.html{ }
format.pdf do
render template: 'student/resumes/show',
pdf: "#{current_user.first_name}.pdf",
# :header => { :content => render_to_string({:template => 'student/resumes/header.pdf.erb'})}
header: {
html: {
template: 'student/resumes/header'},
layout: 'pdf.erb',
handlers: [:erb],
formats: [:pdf]
}
end
end
end
你的右括号放错了地方。 header - html 应该包含所有其他键
def show
@resume = current_user.resume
respond_to do |format|
format.html{ }
format.pdf do
render template: 'student/resumes/show',
pdf: "#{current_user.first_name}.pdf",
# :header => { :content => render_to_string({:template => 'student/resumes/header.pdf.erb'})}
header: {
html: {
template: 'student/resumes/header',
layout: 'pdf.erb',
handlers: [:erb],
formats: [:pdf]
}}
end
end
end
同样的问题我也遇到了代码所以我尝试了很多组合但最后我找到了以下对我有用的解决方案
遵循正确的 HTML DOM 格式,效果非常好:
<!DOCTYPE html>
<html>
<head>
<title></title>
<link href=“https://fonts.googleapis.com/css?family=Roboto:400,700” rel=“stylesheet”>
<%= wicked_pdf_stylesheet_link_tag ‘pdf’ %>
</head>
<body>
<h1>Hello World</h1>
</body>
</html>
以上是页眉示例
另外我在controller中添加了下面的属性来生成PDF
render template: 'backend/report_result/report',
pdf: "test",
header: { html: { template: 'backend/report_result/header'}},
margin: { top: 30, bottom: 20, left: 25, right: 25 }
确保正确使用所有属性以及具有 pdf.erb 格式的视图
如果使用 wicked pdf 生成的 pdf 中有额外的页面,那么
只需在您的 html 代码的最后放置一个 division(或者您可以根据您的代码放置一个 div)。喜欢:
<% @questions.each do |question| %>
<% if question.id == @questions.last.id %>
<div></div>
<% end %>
<% end %>
在 html.put 中添加 division 后,css 中的以下行:
div.alwaysbreak { page-break-before: always; }
div.nobreak:before { clear:both; }
div.nobreak{ page-break-inside: avoid; }
对我有用