2017-06-08 4 views
2

Ich erzeuge PDFs aus HTML mit breed_pdf. Im Moment möchte ich den oberen Rand auf dem ersten/Deckblatt entfernen.Wicked PDF: Wie entferne ich den oberen Rand von der COVER-Seite?

Dies ist ein snipped Code von meinem Controller:

render :pdf => @project.name, 
:javascript_delay => 1000, 
:disable_external_links => false, 
:encoding => 'UTF-8', 
:cover => "#{root_url}/projects/#{params[:id]}/pdf_cover",  
:footer => {:html => { :template => 'projects/report_footer.pdf.haml' }, :spacing => 5}, 
:show_as_html     => params[:debug].present?, 
:disable_smart_shrinking  => false, 
:print_media_type => true, 
:no_background => false, 
:margin => { :top => 10, :bottom => 18 , :left => 0 , :right => 0} 

enter image description here

Wie Sie oben in der Controller-Aktion sehen kann ich den oberen Rand auf 10 festgelegt. Daher möchte ich, dass der obere Rand, die Kopfzeile und die Fußzeile nicht auf der ersten Seite, sondern auf den restlichen Seiten des Dokuments angezeigt werden. Anbaufläche

Antwort

1

Ich sehe Sie auch diese auf the Wicked PDF issue tracker

geschrieben

die Kopf- und Fußzeilen und Ränder sind global für die PDF erstellt, so dass Sie nicht die Titelseite unabhängig optimieren können.

Sie können jedoch zwei PDFs erstellen, eine nur aus dem Cover und eine aus dem Rest und mit Ghostscript oder PDFtk kombinieren.

Here's an example of how you might do that:

html_content = render_to_string 
cover_pdf = WickedPdf.new.pdf_from_string(html_content, { footer: { margin: { bottom: 200 }) 
body_pdf = WickedPdf.new.pdf_from_string(html_content, { footer: { margin: { bottom: 10 }) 

cover_src_temp_file = Tempfile.new(['cover_src', '.pdf']) 
cover_src_temp_file.binmode 
cover_src_temp_file.write(cover_pdf) 
cover_src_temp_file.rewind 
cover_temp_file = Tempfile.new(cover_pdf) 
`pdftk #{cover_src_temp_file} cat 1 output #{cover_temp_file.path.to_s}` # first page only 

body_src_temp_file = Tempfile.new(['body_src', '.pdf']) 
body_src_temp_file.binmode 
body_src_temp_file.write(cover_pdf) 
body_src_temp_file.rewind 
body_temp_file = Tempfile.new(body_pdf) 
`pdftk #{body_src_temp_file.path} cat 2-end output #{body_temp_file.path}` # everything else 

output_temp_file = Tempfile.new(['output', '.pdf']) 
`pdftk #{cover_temp_file.path} #{body_temp_file.path} cat output #{output_temp_file.path}` 
send_file output_temp_file, disposition: 'inline' 

[cover_src_temp_file, body_src_temp_file, cover_temp_file, body_temp_file, output_temp_file].each do |tf| 
tf.close 
tf.unlink 
end 
Verwandte Themen