wkhtmltopdf с проблемой wicked_pdf?

Я использую wkhtmltopdf (0.10.0 rc2) и wicked_pdf (0.9.9) для создания отчета в формате PDF. Во время работы я получил следующую ошибку.

RuntimeError (Error: Failed to execute:
["/usr/bin/wkhtmltopdf", "-q", "--page-size", "A4", "--margin-top", "5", "--margin-bottom", "10", "--margin-left", "5", "--margin-right", "5", "file:////tmp/[\"wicked_pdf\", \".html\"]21873-0", "/tmp/[\"wicked_pdf_generated_file\", \".pdf\"]21873-0"]
Error: PDF could not be generated!
 Command Error: Error: Failed loading page file:////tmp/["wicked_pdf", ".html"]21873-0 (sometimes it will work just to ignore this error with --load-error-handling ignore)
)

мой контроллер:

render :pdf => "#{@note_name}",:layout => '/layouts/pdf_template.html.erb', :template=>'pdf/financial/maintenance_exp/maintenance_exp_pdf.html.erb'

Любая помощь будет оценена по достоинству.

К вашему сведению: когда я это делаю :show_as_html=>true, он не выдает никаких ошибок. Он отображает html в браузере.


person kannathasan    schedule 19.11.2014    source источник


Ответы (2)


Я получал ту же ошибку и исправил ее, следуя инструкциям здесь

https://github.com/mileszs/wicked_pdf/issues/157

А именно, я переключился на временное исправление драгоценного камня, изменив запись gemfile на:

gem 'wicked_pdf', github: 'mileszs/wicked_pdf'

Но обратите внимание, что в моем случае проблема заключалась в расположении файлов в окнах с файлом:// вместо файла:///, поэтому это может вам не помочь. С другой стороны, это было то же сообщение об ошибке, так что, возможно, стоит попробовать.

person elc    schedule 20.11.2014
comment
Это работало в то время, когда был опубликован вопрос, а не решение сейчас (для людей, которые все еще ищут эту ошибку). Смотрите мой ответ здесь, чтобы узнать, что сработало для меня. - person Zia Ul Rehman Mughal; 20.11.2019

Аналогичная ошибка, я пытался использовать WickedPdf.new.pdf_from_html_file

В итоге я использовал WickedPdf.new.pdf_from_string со следующим помощником для создания отображаемой строки html:

  def pdf_html
    ApplicationController.renderer.new.render(
      template: 'purchase_orders/pdf.html.erb',
      layout: 'layouts/pdf_layout.html.erb',
      locals: { abc: 'xyz' },
      formats: [:html]
    )
  end

Очевидно, предполагается, что ApplicationController присутствует

Моя версия рельсов: 6.0.1

Может помочь другим в поиске подобных ошибок.

person Zia Ul Rehman Mughal    schedule 20.11.2019