0

Railsアプリで宝石「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-amd64amd64 プラットフォーム コンピューター用のバイナリです。iMac の内部に AMD チップが搭載されていない限り、それが失敗の原因です。ここで OS X バイナリが必要です: http://code.google.com/p/wkhtmltopdf/downloads/detail?name=wkhtmltopdf-0.9.9-OS-X.i368

Heroku は AMD64 で実行する必要があります。そうでない場合、Heroku の仮想化は 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 のバージョンは、バイナリの .09 に対して .11 です。違いはわかりませんが、ドキュメントを確認する必要があります。

于 2013-10-18T15:17:00.303 に答える