Reputation: 10214
I can convert HTML pages into PDF documents well. The problem is, I don't know how to convert the HTML file into a landscape orientation PDF. Is there a way to set that in the controller?
From the controller...
def pdf_customer_shipments
@customer = Customer.find(params[:id])
@shipments = Shipment.where("customer_id = ? AND status = 'Open'", @customer.id)
render :layout => 'pdf'
end
Upvotes: 8
Views: 5571
Reputation: 759
You need a meta tag in you html file:
...
<head>
<meta name="pdfkit-orientation" content="Landscape"/>
</head>
...
Then the PDF is in landscape orientation.
Upvotes: 6
Reputation: 1098
In case this helps, I am using PDFKit and can render the pdf in landscape using:
respond_to do |format|
format.html
format.pdf {
html = render_to_string(:layout => false , :action => "my_page.html.haml")
kit = PDFKit.new(html, :orientation => 'Landscape')
kit.stylesheets << "#{Rails.root}/public/stylesheets/views/pdf.css"
send_data(kit.to_pdf, :filename => "some_name.pdf", :type => 'application/pdf')
return # to avoid double render call
}
end
I got the orientation part from here: https://github.com/pdfkit/pdfkit/issues/12
Upvotes: 9
Reputation: 2514
PDFKit should accept options for wkhtmltopdf, so you should be able to render in landscape mode by using this:
def pdf_customer_shipments
@customer = Customer.find(params[:id])
@shipments = Shipment.where("customer_id = ? AND status = 'Open'", @customer.id
render :layout => 'pdf', :orientation => 'Landscape'
end
Upvotes: 0