Я использую wicked-pdf
gem (v1.2.2) для создания отчета в формате PDF, который содержит значок шрифта awesome.
Я сохранил файл fontawesome по этому пути:
vendor/assets/fonts/fontawesome.css.erb
и соответствующие шрифты по этому пути:
vendor/assets/fonts/fontawesome/fa-brands-400.eot
Пример фрагмента из fontawesome.css.erb: (так называются шрифты)
/*!
* Font Awesome Free 5.5.0 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/
@font-face {
font-family: 'Font Awesome 5 Brands';
font-style: normal;
font-weight: normal;
src: url('<%= asset_path 'fontawesome/fa-brands-400.eot' %>');
src: url('<%= asset_path 'fontawesome/fa-brands-400.eot' %>?#iefix') format("embedded-opentype"), url('<%= asset_path 'fontawesome/fa-brands-400.woff2' %>') format("woff2"), url('<%= asset_path 'fontawesome/fa-brands-400.woff' %>') format("woff"), url('<%= asset_path 'fontawesome/fa-brands-400.ttf' %>') format("truetype"), url('<%= asset_path 'fontawesome/fa-brands-400.svg#fontawesome' %>') format("svg"); }
Я использую конвейер активов.
Я включил шрифт в макет отчета (report.html.erb
), как показано ниже:
<%= stylesheet_link_tag wicked_pdf_asset_base64('fontawesome.css') %>
Когда я загружаю PDF-файл в режиме отладки, я получаю только квадраты и ничего не вижу в PDF-файле.
Я передал этот вопрос: Font Awesome не работает, значки отображаются в виде квадратов а>
и добавил ссылку CDN на fontawesome вместо локального файла. Это работало только в режиме отладки.
Когда я попробовал в режиме PDF, потребовалось много времени для загрузки, и, наконец, шрифт не отображался. Следовательно, это не решение для меня.
Ждем ваших отзывов. Спасибо
Изменения: я обновил
fontawesome.css.erb
с абсолютной ссылкой на файл шрифта:
@font-face {
font-family: 'Font Awesome 5 Free';
font-style: normal;
font-weight: 400;
src: url('<%= ActionController::Base.helpers.wicked_pdf_asset_path('fontawesome/fa-brands-400.woff') %>');
}
В режиме отладки я получаю следующую ошибку в браузере Chrome.
Not allowed to load local resource: file:///home/Projects/my_app/vendor/assets/fonts/fontawesome/fa-brands-400.woff