Я хочу создать PDF-файл с нашим логотипом отдела. Когда я пытаюсь использовать класс WickedPdf в мой контроллер (с использованием метода, описанного в https://github.com/mileszs/wicked_pdf):Wicked-PDF не показывает изображения, 'wicked_pdf_image_tag' undefined
def some_action
image_tag_string = image_tag('logo.jpg')
pdf = WickedPdf.new.pdf_from_string(image_tag_string)
save_path = Rails.root.join('testpdfs','logotest.pdf')
File.open(save_path, 'wb') do |file|
file << pdf
end
end
... приложение сохраняет PDF в целевой каталог, но он имеет сине-белый " ? отметьте, где должно быть изображение.
Если я вместо этого:
image_tag_string = wicked_pdf_image_tag('logo.jpg')
pdf = WickedPdf.new.pdf_from_string(image_tag_string)
Я получаю следующее сообщение об ошибке:
NoMethodError:
undefined method `wicked_pdf_image_tag' for #<...
Казалось бы, что мой Rails приложение также отсутствует/не ссылки на хелпера файл, принадлежащий к нечестивый-pdf.
Ответы на подобные вопросы в StackOverflow рекомендуют написать специальный помощник «образ-тег», чтобы найти изображение или установить wkhtmltopdf. Для меня образ-тег показывает логотип только отлично, когда помещается в View (whatever.html.erb). «logo.jpg» уже находится как в конвейере активов, так и в # {RailsRoot}/public/images. Наконец, я использую wkhtmltopdf 0.9.9, wicked-pdf 0.11.0 и rails 4 на Ubuntu 14.04.
Вкратце - что я делаю неправильно, что заставляет WickedPDF не отображать изображение?
'wicked_pdf_image_tag' это вспомогательный метод, и как таковой он должен быть использован в представлениях или других помощников. Опубликуйте дополнительную информацию о своей реализации. –
Какая информация была бы полезна? В настоящее время я запускаю указанный выше контроллер # some_action с кнопкой на тестовой странице. Я написал тест, содержащий тот же код в Rspec3, и он делает то же самое, когда я его запускаю - строит PDF, сохраняет его, ставит вопросительный знак, где должно быть изображение. – NewbieOnRails
Как я уже сказал, 'wicked_pdf_image_tag' является вспомогательным методом, поэтому он не может использоваться (по крайней мере, не должен) в действии контроллера. Вы должны сделать представление, в которое вы поместили бы свое изображение, и использовать это представление для создания pdf. Но чтобы сделать длинный рассказ коротким - для wicked_pdf пути изображения должны быть полными, абсолютными путями, с полным пути файловой системы или полным URL-адресом (с доменом и протоколом). Я попытаюсь придумать какой-нибудь простой пример и разместить его здесь (если кто-то не ударит меня). –