I user mac osx and try my html file to pdf file via wickedpdf. I want to put a string every page of my pdf file but I have a problem about header which is not rendering.
My wickedpdf method is,
format.pdf do
render :pdf => '#{@examination.name}.pdf',
:disposition => 'inline',
:layout => 'examination_session_pdf.html.erb',
:no_background => true,
:header =>{:html =>{:template=>'shared/pdf/header.pdf.erb'}}
end
and the header file contains just "hello" string or nothing. However, every time I see this error,
can't convert nil into String
The problem line is ":header =>{:html =>{:template=>'shared/pdf/header.pdf.erb'". In addition, I cannot see any logs about rendering the header page on the console.
How can I fix it?
I hit the exact same problem earlier today!
This is what Ive done to get it to work instead
format.pdf do render :pdf => "#{@inv.invno}.pdf", :template => "inv/show.pdf", :layout =>'pdf', :header => { :content => render_to_string({:template => 'inv/header.pdf.erb'})}, :footer => { :content => render_to_string({:template => 'inv/footer.pdf.erb'})}, :margin => { :top => 38, :bottom => 35} end
You will see Ive actually used the render_to_string and then stuck the result in to the header or footer via :content. This works very well for me.
You can ignore the :margin section as Im just using that to space things out nicely as the header and footers both contain graphics.
Hope this helps!
The solution for me was noted on this issue.
Make sure you have
<!DOCTYPE html>
at the top of your header template file.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With