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 чтобы быть уверенным) у вас могут быть проблемы со шрифтами на производственной машине.

Вещи, чтобы попробовать:

  1. Рендеринг других символов Юникода, если некоторые из них отображаются правильно - это не проблема кодирования
  2. Новее wkhtmltopdf-binary - (0.12.4 в то время), или wkhtmltopdf_binary (другая жемчужина на данный момент устарела)
  3. Обеспечение производственного сервера fontconfig а также libfontconfig установлен и настроен, а также содержит шрифты, которые вы используете
  4. Использование веб-шрифтов (в моих тестах некоторое время назад формат eot работал, но теперь woff2 может быть лучше)
Другие вопросы по тегам