1

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の設定(利用可能なプロセスなど)で何らかの形で関連している可能性がありますか?ありがとうございました

4

1 に答える 1

1

最近、wkhtmltopdf-binary gem で問題が発生し始めました...何が起こったのかまだわかりません。

それを修正するために、次のことを行いました。

  1. gemfile から wkhtmltopdf-binary gem を削除しました
  2. また、この gem を rbenv 環境にインストールしました。サーバーにログインし、 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

そして、すべてが再び機能し始めました。

于 2014-11-23T22:57:16.793 に答える