我正在尝试使用wicked_pdf gem将dyanmic HTMl转换为PDF。
这就是我所有的
class HomeController < ApplicationController
def index
@var = Hash.new
@var = { first_name: "John", last_name: "Doe", address: "A & N", country: "India" }
html = render "home/to_pdf.html.erb", locals: { var:@var }, layout: false
pdf = WickedPdf.new.pdf_from_string(html[0].to_s)
save_path = Rails.root.join('pdfs','filename.pdf')
File.open(save_path, 'wb') do |file|
file << pdf
end
render :home # or redirect_to is also acceptable
end
end
to_pdf.html.erb
<style type="text/css">
.row {
color: red;
}
.p {
font-size: 20px;
font-weight: bold;
}
</style>
<h1>Hello World</h1>
<div class="row">
<em><%= @var[:first_name] %></em>
<em><%= @var[:last_name] %></em>
</div>
<div class="row">
<em><%= @var[:address] %></em>
<em><%= @var[:country] %></em>
</div>
<div class="sign">
<br><br>
SIgn Here
</div>
home.html.erb
<h1>Pdf created successfully</h1>
它成功渲染to_pdf.html.erb并成功创建并保存了pdf文件,但是 我得到了 DoubleRenderError 这很明显。
我想让它重定向或渲染到&#34; home&#34;
注意:如果我删除渲染&#34; home&#34;,那么我没有错误,但它会呈现 to_pdf.html.erb 而不是索引。 html.erb。
我只是想编译erb视图(这是动态的,你可以在上面看到使用@var)作为html,以便我可以将其转换为pdf。