wicked_pdf Ошибка: не удалось создать PDF - PullRequest
7 голосов
/ 25 декабря 2011

Gemfile

gem "wicked_pdf"
gem "wkhtmltopdf-binary"

ошибка:

RuntimeError in CarsController#show

Failed to execute:
/usr/bin/wkhtmltopdf     --print-media-type    -q - - 
Error: PDF could not be generated!
Rails.root: /u/apps/zeepauto/autozeep_update

cars_controller

def show
    @class_showcar = true
    @class_admin = true
    @car = Car.find(params[:id])
    @search = Car.search(params[:search])
    @cars_see_special = Car.where(:special => "1").order('rand()').limit(3)

    respond_to do |format|
      format.html # show.html.erb
      format.xml  { render :xml => @car }
      format.pdf do
        render :pdf => "#{@car.carname.name}",
               :print_media_type => true
      end
    end
  end

show.html.erb

<p class="show_links"><%= link_to  url_for(request.params.merge(:format => :pdf)) do %>
  <%= image_tag('/images/printversion.png', :alt => 'Download') %>
</p>

wicked_pdf.erb

# config/initializers/wicked_pdf.rb
WickedPdf.config = {
#  :exe_path => '/var/lib/gems/1.8/bin/wkhtmltopdf'
  :exe_path => '/usr/bin/wkhtmltopdf'
}

Ответы [ 3 ]

19 голосов
/ 18 января 2012

У меня была такая же проблема. Решением было добавить wkhtmltopdf-binary в файл gem и запустить bundle install.

gem "wicked_pdf"
gem "wkhtmltopdf-binary"
8 голосов
/ 26 декабря 2011

У меня было wkhtmltopdf-binary уже в gemfile, но так как это работало на моем локальном компьютере, а не на сервере, я оставил эту ошибку для команды поддержки сервера, чтобы она остерегалась ... они проверили путь к wkhtmltopdf, они пытались преобразовать простой HTML в PDF, и это сработало ... поэтому они попытались запустить команду bundle update, и после этого преобразование PDF также хорошо работало на сервере. Я изменил путь драгоценного камня, и я думаю, что это была проблема. Я отправил свое решение на случай, если у кого-то еще возникнет эта проблема.

0 голосов
/ 10 июля 2019

У меня была такая же проблема. У меня было установлено wkhtmltopdf-binary и bundle update тоже не помогло. Вот что мне помогло:

Важно то, что я запускаю это на Alpine Linux, и, похоже, он не поддерживается gem wkhtmltopdf_binary_gem https://github.com/zakird/wkhtmltopdf_binary_gem/issues/53

Я установил отдельно wkhtmltopdf в систему: apk add wkhtmltopdf

А затем отредактировал инициализатор, включив в него двоичный путь:

# config/initializers/wicked_pdf.rb
require "wicked_pdf"

WickedPdf.config = {
  exe_path: ENV["WKHTMLTOPDF_BIN"]
}
...