2016-09-29 17 views
0

ブラウザにFedexラベルをPDFとして表示するアプリケーションがあります。私は次のように各ラベルのレンダリングにsend_dataを使用しているし、それが完璧に動作Rubyのsend_dataを使用して、配列をブラウザでPDFとしてレンダリングする

:私はラベルsay @labels_imagesの配列を持つことができ、すなわち、同様に複数のラベルをレンダリング

@label_image = Base64.decode64(image_hex).html_safe #image_hex is a text field where I store the label in db 
send_data @label_image, :type => 'application/pdf', :disposition => 'inline', :filename => 'test.pdf' 

しかし、私はにしたいと1回のリクエストでそれらをブラウザに表示します。

PDFの各ページには1つのラベルが必要です。

send_dataまたはこれに利用できる他のライブラリを使用して、どうすればよいですか?

おかげ

あなたがsend_dataにそれを渡すことができる、ということしたらあなたは、最初の複数ページのPDFを作成する必要があるようですね

答えて

0

私はcombine_pdf gemを使用して終了しました。これは、ブラウザでレンダリングされる複数のオブジェクトをPDFとしてマージするのに役立ちます。

作業コードは次のようになります。応答のための

pdf = CombinePDF.new 
@label_items.each { |item| pdf << CombinePDF.parse(Base64.decode64(item.image_hex).html_safe) } 
send_data pdf.to_pdf, :type => 'application/pdf', :disposition => 'inline', :filename => 'test.pdf' 
1

ルビーには多くのPDFライブラリがあり、ruby-toolboxには良いリストがあります。

また、複数ページのPDFを必要としない場合は、複数のpdfsを1つのファイルにまとめて、send_dataに渡すことができます。

+0

おかげで、私はこの作業を取得するためにcombine_pdfの宝石を使用しました! – dp7

関連する問題