wicked_pdf: проблема с кодировкой UTF-8 на производстве
В моем приложении на Rails 5 я использую wicked_pdf и wkhtmltopdf-binary gem для создания PDF из HTML. Но есть некоторые проблемы при создании PDF на производстве. Символ валюты не отображается должным образом, но он отлично работает в разработке.
Вот мое изображение в формате PDF.
скриншот моего производства pdf
Мой Gemfile выглядит так:
gem 'wicked_pdf', '~> 1.1'
gem 'wkhtmltopdf-binary', '~> 0.12.3.1'
Код моего контроллера:
def generate_order
@order = @user_builder.orders.find(params[:id])
render pdf: 'billing_pdf',
layout: 'layouts/pdf.html.erb',
:show_as_html => params[:debug].present?, #true
encoding: 'utf8'
end
Я перепробовал множество решений от Stackru на другие подобные вопросы. Все они предложили мне добавить мета в файл макета. Я также добавил это в свой файл макета.
отредактированный
мой файл макета PDF.
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Billing</title>
</head>
<body>
<div class='container'>
<%= yield %>
</div>
</body>
</html>
Я буду очень признателен, если кто-то может указать, что идет не так в этом случае. Заранее спасибо.
1 ответ
Другие проблемы с кодировкой (которые выглядят хорошо, только я бы использовал Content-Type
чтобы быть уверенным) у вас могут быть проблемы со шрифтами на производственной машине.
Вещи, чтобы попробовать:
- Рендеринг других символов Юникода, если некоторые из них отображаются правильно - это не проблема кодирования
- Новее
wkhtmltopdf-binary
- (0.12.4 в то время), илиwkhtmltopdf_binary
(другая жемчужина на данный момент устарела) - Обеспечение производственного сервера
fontconfig
а такжеlibfontconfig
установлен и настроен, а также содержит шрифты, которые вы используете - Использование веб-шрифтов (в моих тестах некоторое время назад формат eot работал, но теперь woff2 может быть лучше)