10

我正在尝试在 rails 3 应用程序中使用 PDFKit 作为中间件。

我可以从命令行使用 wkhtmltopdf 就好了,但是我的应用程序不断向我抛出这个错误

command failed: "/Users/bobby/.rvm/gems/ruby-1.9.2-p0/bin/wkhtmltopdf" "--page-size" "Letter" "--margin-top" "0.75in" "--margin-right" "0.75in" "--margin-bottom" "0.75in" "--margin-left" "0.75in" "--encoding" "UTF-8" "--print-media-type" "--quiet" "-" "-"

如果我在终端中运行它,它会等待我的输入,所以我输入一些 HTML,然后按 Ctrl-d 并吐出似乎是一些 PDF 的内容......但在 rails 中没有运气。

这是我所拥有的:

application.rb

require File.expand_path('../boot', __FILE__)

require 'rails/all'
require 'pdfkit'
Bundler.require(:default, Rails.env) if defined?(Bundler)

module Mpr
  class Application < Rails::Application

    YEARS_ARRAY =  (2006..2012).map {|y| [y,y]}.unshift(["Year",nil])
    MONTHS_ARRAY = (1..12).map{|m| [ Date::MONTHNAMES[m], m]}.unshift(["All months",nil])
    config.middleware.use "PDFKit::Middleware", :print_media_type => true
    PDFKit.configure do |config|
      config.wkhtmltopdf = '/Users/bobby/.rvm/gems/ruby-1.9.2-p0/bin/wkhtmltopdf'
    end
  end
end

在我的控制器中(第一行)

respond_to :html, :pdf

我想我已经浏览了 SO、Github 和 Google 上的所有线程,但没有运气。

任何人都可以帮助或指出我正确的方向吗?

谢谢,P。

4

4 回答 4

6

运行并复制路径

哪个 wkhtmltopdf

创建config/initializers/pdfkit.rb

 PDFKit.configure do |config|
   config.wkhtmltopdf = '/path/to/wkhtmltopdf'
 end
于 2011-04-11T11:39:36.930 回答
3

有人解决了这个问题并善意地发布了他们的解决方案

于 2011-07-06T09:01:29.690 回答
1

为什么错误以

/用户/鲍比/...
但是您的配置以
/用户/pierrelapree/...

编辑:

您的代码与自述文件中的示例之间的另一个区别:https ://github.com/pdfkit/PDFKit是它们显示config.middleware.use采用类或模块参数,而不是字符串。

尝试改变这个

config.middleware.use "PDFKit::Middleware", :print_media_type => true

对此

config.middleware.use PDFKit::Middleware, :print_media_type => true
于 2011-02-15T02:49:27.907 回答
1

作为宝石而来的wkhtmltopdf是相当古老的。卸载此 gem 并尝试以下wkhtmltopdf 二进制文件。下载,解压缩并移动到/usr/local/bin/. 它应该有帮助。

于 2011-04-11T11:35:30.443 回答