2012-01-12 28 views
6

Puedo convertir páginas HTML en documentos PDF. El problema es que no sé cómo convertir el archivo HTML en PDF de orientación horizontal. ¿Hay alguna manera de configurar eso en el controlador?Rails 3 y PDFKit, ¿cómo puedo convertir un archivo HTML en un PDF de orientación horizontal?

Desde el controlador ...

def pdf_customer_shipments 
    @customer = Customer.find(params[:id]) 
    @shipments = Shipment.where("customer_id = ? AND status = 'Open'", @customer.id) 
    render :layout => 'pdf' 
end 

Respuesta

0

PDFKit debe aceptar opciones para wkhtmltopdf, por lo que debería ser capaz de hacer en el modo horizontal mediante el uso de esto:

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 
+0

intenté eso, todavía se muestra como retrato – leonel

7

En caso de que esta ayuda, estoy usando PDFKit y puede hacer que el pdf en el paisaje usando:

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 

tengo la orientación nominal t desde aquí: https://github.com/pdfkit/pdfkit/issues/12

6

Se necesita una etiqueta meta en la que el archivo html:

... 
<head> 
    <meta name="pdfkit-orientation" content="Landscape"/> 
</head> 
... 

A continuación, el PDF es en orientación horizontal.

+0

https://github.com/pdfkit/pdfkit/issues/23 –

+0

¡Esto fue perfecto! En mi inicializador de middleware tengo que dejar el valor predeterminado como Portrait, pero esto me permite anularlo en Landscape página por página. – FireDragon

Cuestiones relacionadas