2017-06-22 6 views
1

私は何か簡単なものがないと思う。 combine_pdfを使用する:私は2つのpdfファイルを1つのpdfに結合しようとしており、その結果得られたpdfをsend_dataで私のレールアプリに送ります。ここでcombine_pdf PDFを結合していない

は、コントローラ内の私のコードです:

pdf = CombinePDF.new 

# returns an array, each element is a string of an absolute path 
# to the file I want to upload 
absolute_upload_paths = @obj.attachments.collect {|obj| obj.my_attachment.path} 

absolute_upload_paths.each {|upload_path| pdf << CombinePDF.load(upload_path)} 

send_data pdf, filename: “my_combined_pdf”, type: "application/pdf" 

開くことができない、破損したPDFファイルが送信されるということです何の結果:

Adob​​e Acrobat Readerが「VR_Voc_Eval-51を開くことができませんでした

を.pdf 'はサポートされているファイルタイプでないか、ファイルが壊れている(たとえば、電子メールの添付ファイルとして送信され、正しくデコードされなかったなど)ためです。

私は何が欠けていますか?この宝石を使って、既存の2つのpdfファイルを1つのpdfに結合し、それをユーザーに送信するにはどうすればよいですか?

+0

大きな統合は、それは小さな部分に問題を打破するのが最善です動作しません。ハードコードされたファイルパスを使って、レールやルビーのコンソールからpdfsをマージできますか?それがうまくいくと、モデルからファイルをマージして、ファイルをレールから戻すことができます。 – Puhlze

答えて

2

データを送信するときに、そのライブラリのREADMEが.to_pdfを呼び出すようです。この例のようにpdfオブジェクトの#to_pdfを呼び出すとうまくいけば問題は解決します。

send_data pdf.to_pdf, filename: “my_combined_pdf”, type: "application/pdf" 

https://github.com/boazsegev/combine_pdf#rendering-pdf-data

+0

それは、 '.to_pdf'が必要でした。ありがとうございました! – Neil

関連する問題