2017-01-24 8 views
1

I'am пытается использовать параметр :root_url с PDFKit, как предложено здесь https://github.com/pdfkit/pdfkit в разрешения относительных URL-адресов и протоколов раздел:PDFKit wkhtmltopdf: root_url Неизвестный длинный аргумент --root-URL

PDFKit.new(html, root_url: 'http://example.com/').to_file 

Мой код:

html = Nokogiri::HTML(open("http://stackoverflow.com")) 
PDFKit.new(html.to_s, root_url:'http://stackoverflow.com/').to_file(file.path) 

возвращает wkhtmltopdf ошибка Unknown long argument --root-url. Похоже, wkhtmltopdf даже не имеет такой опции, и ее следует интерпретировать PDFKit.

Кто-нибудь знает, как я могу это решить?

версии: wkhtmltopdf 0.12.4 pdfkit 0.8.2 апробированы с wkhtmltopdf 0.12.3 pdfkit 0.8.0

ответ

2

Я получил вышеуказанную ошибку когда

Я неподвижную этим путем

Выполнить и скопировать путь из ниже команды

which wkhtmltopdf 

Создание :

PDFKit.configure do |config| 
    config.wkhtmltopdf = '/path/to/wkhtmltopdf' 
end 

Может помочь вам разрешить его

также используйте обновленную версию wkhtmlpdf

согласно предложил here

+0

Спасибо за ваше предложение, к несчастью, что не работает в моем случае. –

+0

Пожалуйста, https://github.com/pdfkit/pdfkit/wiki/Troubleshooting#unknown-long-argument---disable-smart-shrinking Посмотрите на это и обновите wkhtmltopdf –

+0

предложите вам попробовать попробовать pdfkit 0.8.0 и wkhtmltopdf 0.12.3..Пожалуйста, дайте мне знать –

1

wkhtmltopdf сообщается с некоторыми проблемами в последнее время. Вместо этого, пожалуйста, установите wkhtmltopdf-binary драгоценный камень & повторите попытку. (Нет необходимости удалить wkhtmltopdf)

gem install wkhtmltopdf-binary 

Если он не работает исключительно, попробуйте следующее.

PDFKit.new('http://stackoverflow.com').to_file(file.path) 
1

Мое обходное решение добавляло тег «base» непосредственно в HTML.

require 'open-uri' 
html = open("http://stackoverflow.com").read 
html.gsub! "<head>", "<head><base href='http://stackoverflow.com' />" 
PDFKit.new(html).to_file("/tmp/out.pdf")