2013-02-13 2 views
3

Ошибка:"Ошибка: невозможно создать PDF!" с WickedPDF

RuntimeError in BillsController#printing 

Failed to execute: 
"/usr/local/bin/wkhtmltopdf" -q  "file:////var/folders/j5/2wx0qdjj7kl7vbvq3m2z4rj00000gn/T/wicked_pdf20130213-41259-x9dcb5.html" "/var/folders/j5/2wx0qdjj7kl7vbvq3m2z4rj00000gn/T/wicked_pdf_generated_file20130213-41259-mg4iqp.pdf" 
Error: PDF could not be generated! 

BillsController:

# GET /bills 
    # GET /bills.json 
    def print 
    respond_to do |format| 
     format.html 
     format.pdf do 
     render :pdf => "rechnung_id", 
       :layout => "printing.pdf", 
       :show_as_html => params[:debug] 
     end 
    end 
    end 

как представления я создал printing.html.erb и printing.pdf.erb - и попробовал оба.

Я установил wkhtmltopdf как двоичный и как драгоценный камень. Когда я пытаюсь использовать драгоценный камень (закомментировать строку:.

WickedPdf.config = { :exe_path => '/usr/local/bin/wkhtmltopdf'} 

что-то, кажется, аварии и ничего не происходит .. Когда я использую двоичный, я получаю сообщение об ошибке, отображаемое на верхней Версии моих драгоценных камней являются:. wicked_pdf (0.9.4) и wkhtmltopdf-бинарное (0.9.9.1)

Я искал помощи - это то, что я уже пробовал:

  1. "обновление расслоение" и «пакет установки "
  2. установлен wkhtmltopdf в версии 9.9
  3. добавил приложение "Мим :: Type.register "/ PDF",": PDF

EDIT: Если я использую терминал и введите «wkhtmltopdf www.myHomepage. info myhomepage.pdf "работает отлично. «который wkhtmltopdf» дает мне путь «/ usr/bin/wkhtmltopdf», но если я хочу использовать его, он открывает «wkhtmltopdf_darwin_386», и веб-сайт зависает.

ответ

1

теперь я решил проблему.

Я изменил мой метод контроллера для:

def printing 
    @bills = Bill.find(params[:id]) 

    respond_to do |format| 
     format.html 
     format.pdf do 
     render :pdf => "bill_#{@bills.id}", 
       :wkhtmltopdf => '/usr/bin/wkhtmltopdf', 
       :template => '/bills/printing.pdf.erb', 
       :disposition => "inline" 
       #:save_to_file => Rails.root.join('pdf', "rechnung_#{@bills.id}.pdf") 
     end 
    end 
    end 

и я должен был удалить WickedPDF в качестве промежуточного слоя в application.rb:

require 'wicked_pdf' 
config.middleware.use WickedPdf::Middleware, {} 

теперь он работает, как ожидалось.

Смежные вопросы