结合PDF和大虾

时间:2018-09-11 03:14:47

标签: ruby-on-rails pdf carrierwave prawn

我正在使用虾宝石来生成我的模型属性的pdf。到目前为止,我对此还没有任何问题。但是,我现在正在使用Carrierwave上传其他PDF供参考。

Carrierwave可以正常工作,因为我的模型在上传其他PDF时具有以下更改:

documents: [] to [{"url"=>"/uploads/tmp/1536259407-12025-0001-8255/Amazon.com_-_Order_111-4655889-4409816.pdf"}]

我想使用Combine_pdf gem将附加的载波pdf(document)渲染到渲染的虾PDF上。

我的控制器具有以下代码:

respond_to do |format|
  format.html
  format.js
  format.json
  format.pdf do
    order_pdf = OrderPdf.new(@order, current_user).render
    final_pdf = CombinePDF.new 
    final_pdf << CombinePDF.parse(order_pdf)
    if @order.documents.any? 
      @order.documents.each do |doc|
        # if I comment out this line, the original pdf loads, as expected 
        final_pdf << CombinePDF.parse(IO.read(doc.url))
      end 
    end 
    send_data final_pdf.to_pdf,
              filename: "order_#{@order.id}.pdf",
              type: 'application/pdf',
              disposition: 'inline'
  end
end

我遇到Errno::ENOENT错误(或超时):

No such file or directory @ rb_sysopen - /uploads/order/documents/16/Amazon.com_-_Order_111-4655889-4409816.pdf

作为参考,这里是我的DocumentUploader:

def store_dir
  "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end

0 个答案:

没有答案