2016-02-04 3 views
0

Я пытаюсь отправить электронное письмо в pdf-файл, используя жемчужину wicked_pdf внутри приложения rails 4.Rails email to pdf

Возможна ли такая операция? Я пробовал

ApplicationController.new.render_to_string :text => email.body, :format => :pdf, :template => 'wicked_pdf/template', :layout => 'wicked_pdf' 

но это дает пустую строку. Обратите внимание: несмотря на то, что шаблоны не должны использоваться, я создал их, поскольку они необходимы для рендеринга.

email.body можно заменить любой строкой на тот же результат.

Оба файла пустые, только <%= yield %>.

+0

Куда отправляется электронное письмо? –

+0

Эй, Макс, я отредактировал сообщение для ясности – muichkine

ответ

0

Я выводил правильное решение от ответа РИИ в:

Если у вас уже есть строка или HTML текст, вы можете сделать это в формате PDF, просто позвонив

pdf = WickedPdf.new.pdf_from_string(email.body) 

нет необходимости вызывать любой рендер. Таким образом, вам не нужен ни один шаблон или что-то еще.

1

От Злого PDF документации:

wkhtmltopdf бинарное выполняется за пределами вашего приложения Rails; поэтому ваши обычные макеты не будут работать. Если вы планируете использовать любые файлы CSS, Javascript или изображений, вы должны изменить свой макет, чтобы вы предоставили абсолютную ссылку на эти файлы.

Вот как я обычно делаю злые файлы PDF.

pdf = WickedPdf.new.pdf_from_string(
     ActionController::Base.new().render_to_string(:template => YourTemplate, :locals => {:something => @something}) 
    ) 

Надеюсь, что это поможет.