【问题标题】:Creating collection of pdfs with wicked_pdf使用 wicked_pdf 创建 pdf 集合
【发布时间】:2014-09-04 08:21:56
【问题描述】:

我在收集 pdfs 文件时遇到问题并将其保存到文件中。我为显示操作创建了这个,所以当我点击链接时,它会生成 pdf 并将它们存储在公共文件夹中:

def show
    add_breadcrumb "Inovice details"
    respond_to do |format|
      format.html
      format.pdf do
        render :pdf => "file_name", :save_to_file => Rails.root.join('public', "Invoice no. #{@invoice.format_id}.pdf")
      end
      format.csv {send_data Invoice.where(id: @invoice.id).to_csv,
        filename: "Invoice no. #{@invoice.format_id}.csv"}
    end
  end

现在我想创建相同的功能,但用于对象集合。例如,我有 10 张发票,我想为所有发票生成 pdf 并将其保存到公共文件夹。我正在尝试这样的事情:

def index
      @invoices = @company.invoices
    respond_to do |format|
      format.html
      format.js
      format.csv { send_data @invoices.to_csv }
      format.pdf do
        @invoices.each do |invoice|
          render :pdf => "file_name", :save_to_file => Rails.root.join('public', "Invoice no. #{invoice.format_id}.pdf")
        end
      end
    end
    authorize @invoices
  end

但它没有工作。我不知道如何解决这个问题。我将不胜感激。

【问题讨论】:

    标签: ruby-on-rails ruby wicked-pdf


    【解决方案1】:

    您不能在同一个请求中发送多个 PDF。

    我认为最好的解决方案是在后台作业 (https://github.com/mileszs/wicked_pdf/wiki/Background-PDF-creation-via-delayed_job-gem) 中生成 PDF,并提供一个 HTML 页面,其中包含指向所有 PDF 的链接。

    如果这对您不起作用,您可以将所有内容合并到一个大 PDF 文件中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-14
      • 2020-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-10
      相关资源
      最近更新 更多