0

我在 Rails 应用程序中使用 gem 'pdfkit'。它在 Heroku 上运行良好,但在我的 iMac 上出现错误。

错误:

command failed: "/users/myname/sites/ndeavor2/bin/wkhtmltopdf-amd64"

应用程序 wkhtmltopdf-amd64 位于错误指示的文件夹中!

我的 application.rb 有:

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

我有一个名为 pdfkit.rb 的初始化程序

PDFKit.configure do |config|
  config.wkhtmltopdf = Rails.root.join('bin', 'wkhtmltopdf-amd64').to_s
end

谢谢您的帮助!

更新1

我下载了 wkhtmltopdf.app 并放置在与 amd64 版本相同的位置。

我将 pdfkit.rb 更改为:

PDFKit.configure do |config|
  config.wkhtmltopdf = Rails.root.join('bin', 'wkhtmltopdf-amd64').to_s if Rails.env.production?
  config.wkhtmltopdf = Rails.root.join('bin', 'wkhtmltopdf.app').to_s if Rails.env.development?
end

我还将 wkhtmltopdf.app 的副本放入应用程序文件夹并尝试了以下操作:

  config.wkhtmltopdf = '/applications/wkhtmltopdf.app' if Rails.env.development?

我收到此错误:

command failed: 
4

1 回答 1

2

wkhtmltopdf-amd64是用于 amd64 平台计算机的二进制文件。除非你的 iMac 在引擎盖下有 AMD 芯片,否则这就是它失败的原因。您想要 OS X 二进制文件:http: //code.google.com/p/wkhtmltopdf/downloads/detail?name=wkhtmltopdf-0.9.9-OS -X.i368

Heroku 必须在 AMD64 上运行,否则它们的虚拟化是 AMD 架构。这应该是它在 Heroku 上工作的原因。

更新:您可能想要从这里获得 OS X 的完整应用程序: http ://code.google.com/p/wkhtmltopdf/downloads/detail?name=wkhtmltopdf.dmg

不确定您是如何安装 wkhtmltopdf 的,所以不知道哪个适合您的设置。

更新!!!

如果您下载 wkhtmltopdf-0.9.9-OS-X.i368 二进制文件,您可以将其重命名为 wkhtmltopdf:

mv wkhtmltopdf-0.9.9-OS-X.i368 wkhtmltopdf

那么你需要让它可执行:

chmod 775 wkhtmltopdf

然后,您可以测试它是否运行:

./wkhtmltopdf

您应该看到帮助/使用信息。

如果您下载了 .dmg 文件,它是一个打包的应用程序,但要从程序中调用它,您必须提供可执行文件的路径,即:

wkhtmltopdf.app/Contents/MacOS/wkhtmltopdf

这是一个相对路径(注意 wkhtmltopdf.app 之前没有斜线),因此请相应地对待。.dmg 版本的二进制文件为 .11 与 .09。不过不知道有什么区别,你必须检查文档。

于 2013-10-18T15:17:00.303 回答