I'd like to generate PDF file, so I am trying to use PDFKit
but failing.
The following error was displayed when input http://localhost:3000/users/1.pdf
into my browser.
Template is missing Missing template /users.show with {:locale=>[:en], :formats=>[:pdf], :variants=>>[], :handlers=>[:erb, :builder, :raw, :ruby, :jbuilder, :coffee]}. Searched in: * "c:/xxx/xxx/app/views"
Please advise me on how to avoid this error.
\config\initializers\pdfkit.rb
PDFKit.configure do |config|
config.wkhtmltopdf = `which wkhtmltopdf`.to_s.strip
config.default_options = {
encoding: "UTF-8",
page_size: "A4"
}
end
\app\controllers\users_controller.rb
def show
@user = User.find(params[:id])
respond_to do |format|
format.html
format.pdf do
html = render_to_string template: "users.show"
pdf = PDFKit.new(html, encoding: "UTF-8")
send_data pdf.to_pdf,
filename: "#{@user.id}.pdf",
type: "application/pdf",
disposition: "inline"
end
end
end
\views\users\show.pdf.erb
<div class="row">
<div class="col-md-5" style="background:orange;"><%= @user.id %></div>
<div class="col-md-7" style="background:yellow;"><%= @user.name %></div>
</div>
I use bootstrap @import "bootstrap";
in custom.css.scss. Is that something to do with this error?
\assets\stylesheets\custom.css.scss
@import "bootstrap";
My environment is Windows