以下のコードを使用して、PDFKit を使用して RoR 3.2.11 で作成している PDF にフッターを追加しようとしています。
template = File.read "#{Rails.root}/app/views/layouts/portfolio.haml"
@ci = self
pdf_html = Haml::Engine.new(template).render self
template_footer = File.read "#{Rails.root}/app/views/layouts/portfolio_footer.haml"
@ci = self
pdf_footer_html = Haml::Engine.new(template_footer).render self
pdfkit_instance = PDFKit.new(pdf_html, :orientation => 'Landscape', 'footer-html' => pdf_footer_html)
send_data(pdf.to_pdf, :filename => "generated.pdf", :type => 'application/pdf')
残念ながら、これにより「Broken Pipe」エラーが発生します。
pdfkit (0.5.2) lib/pdfkit/pdfkit.rb:65:in `write'
pdfkit (0.5.2) lib/pdfkit/pdfkit.rb:65:in `puts'
pdfkit (0.5.2) lib/pdfkit/pdfkit.rb:65:in `block in to_pdf'
pdfkit (0.5.2) lib/pdfkit/pdfkit.rb:64:in `popen'
pdfkit (0.5.2) lib/pdfkit/pdfkit.rb:64:in `to_pdf'
app/controllers/admin/collection_items_controller.rb:9:in `test_generate_pdf'
フッターなしで PDF を生成すると、成功します。フッター html をメインの html ソースとして使用する場合も成功します。'footer-right' のようなプレーン テキスト オプションの 1 つを使用しても機能しますが、明らかに html オプションを使用したいと考えています。この動作は、ローカルでも Heroku にデプロイされた場合でも一貫しています。