【问题标题】:rails and pdfkit can not generate pdf from controllerrails 和 pdfkit 无法从控制器生成 pdf
【发布时间】:2012-12-16 01:38:04
【问题描述】:

我在使用 pdf_kit gem 生成 PDF 文件时遇到问题。 如果我在我的应用程序控制台中运行这些命令(RAILS_ENV=production rails c):

kit = PDFKit.new(html, :page_size => 'Letter')
file = kit.to_file('./demo.pdf')

我可以看到正确生成的pdf文件,但是如果我在动作控制器上尝试同样的事情,这样:

kit = PDFKit.new("ciao")
kit.to_file('/root/app/bidimal/demo1.pdf')

我在 production.log 中收到此错误

RuntimeError (command failed: "/root/.rbenv/shims/wkhtmltopdf" "--encoding" "UTF-8" "--page-size" "A4" "--margin-top" "0.25in" "--margin-right" "0.25in" "--margin-bottom" "0.25in" "--margin-left" "0.25in" "--quiet" "-" "/root/app/bidimal/demo1.pdf"):
  app/controllers/winners_controller.rb:69:in `invoice'

我已经通过以下方式检查了 wkhtmltopdf 的路径:

which wkhtmltopdf
/root/.rbenv/shims/wkhtmltopdf

所以我认为它是正确的。顺便说一句,我在 config/initializers/pdfkit.rb 中有这个

PDFKit.configure do |config|
  config.wkhtmltopdf = '/root/.rbenv/shims/wkhtmltopdf'
  config.default_options[:ignore_load_errors] = true
  config.default_options = {
    :encoding=>"UTF-8",
    :page_size=>"A4",
    :margin_top=>"0.25in",
    :margin_right=>"0.25in",
    :margin_bottom=>"0.25in",
    :margin_left=>"0.25in",
    :disable_smart_shrinking=>false
    }
end

我在 nginx+passenger 下,问题可能与任何 nginx 设置(如可用进程等)有关吗? 谢谢

【问题讨论】:

  • 我从这里 code.google.com/p/wkhtmltopdf/downloads/list 下载了正确的 bin,并更改了 pdfkit.rb 以指向它。它工作正常
  • 那么你的问题解决了吗?如果是这样,请考虑发布答案或关闭问题。

标签: ruby-on-rails pdfkit


【解决方案1】:

最近我开始遇到 wkhtmltopdf-binary gem 的问题...我仍然不确定发生了什么。

为了解决这个问题,我做了以下操作:

  1. 我从我的 gemfile 中删除了 wkhtmltopdf-binary gem
  2. 我还在我的 rbenv 环境中安装了这个 gem。我登录服务器并通过 gem uninstall wkhtmltopdf-binary 删除它
  3. 我直接在我的系统上安装了 wkhtmltopdf 可执行文件。 (我在 ubuntu 上,所以我的命令是 sudo apt-get install wkhtmltopdf)
  4. 我在我的 Rails 应用程序“config/initializers/pdfkit.rb”中创建了一个初始化程序,其中包含以下内容

PDFKit.configure do |config| config.wkhtmltopdf = '/usr/local/bin/wkhtmltopdf' end

一切又开始工作了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-14
    • 2018-06-18
    • 1970-01-01
    • 1970-01-01
    • 2013-07-28
    • 2017-08-23
    相关资源
    最近更新 更多