Я пытаюсь вставить классные веб-шрифты font 5 в файл шаблона pdf, используя вспомогательный метод fa_icon в проекте Rails 6.
В Gemfile были включены следующие драгоценные камни:
gem 'wicked_pdf'
gem 'wkhtmltopdf-binary-edge'
gem "font_awesome5_rails", "~> 1.1"
Я создал файл манифеста pdf. css и добавил следующее:
/*
*= require bootstrap
*= require font_awesome5_webfont
*= require_self
*/
Файл макета views/layouts/document.pdf.html.erb
был создан для вывода wicked_pdf следующим образом:
<!-- app/views/layouts/document.pdf.erb -->
<!doctype html>
<html>
<head>
<meta charset='utf-8' />
<%= wicked_pdf_stylesheet_link_tag "pdf.css" %>
</head>
<body>
<div id="content">
<%= yield %>
</div>
</body>
</html>
И Кроме того, действие controller#show
было записано следующим образом:
def show
respond_to do |format|
format.html
format.pdf do
render pdf: "Report No. #{@test.id}",
template: "controller/show.html.erb",
layout: "document.pdf.html.erb",
page_size: 'A4',
font_name: 'Font Awesome 5 Free',
lowquality: true,
encoding: 'UTF-8',
zoom: 1,
dpi: 75
end
end
end
Ну, мне нужен был вспомогательный метод следующего вида:
def checkbox_with_fa(checked_bool, label)
check_box = checked_bool ? fa_icon('check-square', type: :regular) : fa_icon('square', type: :regular)
sanitize("<div class='d-inline-block mr-2'>#{check_box} #{label}</div>")
end
Шаблон представления show
был записан как следует:
<td>
<%= checkbox_with_fa(@test.first_time, 'Yes') %>
<%= checkbox_with_fa(!@test.first_time, 'No') %>
</td>
Наконец, когда я перешел по следующему URL-адресу,
http://localhost:3000/controllers/5.pdf
Превосходные шрифты не были показаны в обработанном PDF-файле.
В противном случае * Шаблон 1029 * html хорошо отрисован, в браузере показаны отличные шрифты
http://localhost:3000/controllers/5