3

错误:

RuntimeError in BillsController#printing

Failed to execute:
"/usr/local/bin/wkhtmltopdf" -q        "file:////var/folders/j5/2wx0qdjj7kl7vbvq3m2z4rj00000gn/T/wicked_pdf20130213-41259-x9dcb5.html" "/var/folders/j5/2wx0qdjj7kl7vbvq3m2z4rj00000gn/T/wicked_pdf_generated_file20130213-41259-mg4iqp.pdf" 
Error: PDF could not be generated!

账单控制器:

  # GET /bills
  # GET /bills.json
  def print
    respond_to do |format|
      format.html 
      format.pdf do
        render :pdf => "rechnung_id",
               :layout => "printing.pdf",
               :show_as_html => params[:debug]
      end
    end
  end

作为视图,我创建了一个 printing.html.erb 和一个 printing.pdf.erb - 并尝试了两者。

我已经将 wkhtmltopdf 安装为二进制和 gem。当我尝试使用 gem 时(注释掉该行:

WickedPdf.config = { :exe_path => '/usr/local/bin/wkhtmltopdf'}

有些东西似乎崩溃了,什么也没发生。当我使用二进制文件时,我得到错误显示在顶部。我的 gem 的版本是:wicked_pdf (0.9.4) 和 wkhtmltopdf-binary (0.9.9.1)。

我正在寻求帮助 - 这就是我已经尝试过的:

  1. “捆绑更新”和“捆绑安装”
  2. 在 9.9 版中安装了 wkhtmltopdf
  3. 添加了 "Mime::Type.register "application/pdf", :pdf"

编辑:如果我使用终端并输入“wkhtmltopdf www.myHomepage.info myhomepage.pdf”它工作正常。“which wkhtmltopdf”给了我路径“/usr/bin/wkhtmltopdf”,但如果我想使用一个,它正在打开“wkhtmltopdf_darwin_386”并且网站冻结..

4

1 回答 1

2

现在我解决了这个问题。

我将控制器方法更改为:

 def printing
    @bills = Bill.find(params[:id])

    respond_to do |format|
      format.html
      format.pdf do
        render :pdf => "bill_#{@bills.id}",
               :wkhtmltopdf => '/usr/bin/wkhtmltopdf',
               :template => '/bills/printing.pdf.erb',
               :disposition => "inline"
               #:save_to_file => Rails.root.join('pdf', "rechnung_#{@bills.id}.pdf")
      end
    end
  end

我不得不在 application.rb 中删除 WickedPDF 作为中间件:

require 'wicked_pdf'
config.middleware.use WickedPdf::Middleware, {}

现在它按预期工作。

于 2013-02-13T11:50:55.807 回答