【问题标题】:wicked_pdf: UTF-8 encoding issue on productionwicked_pdf:生产中的 UTF-8 编码问题
【发布时间】:2019-05-22 08:23:09
【问题描述】:

在我的 Rails 5 应用程序中,我使用 wicked_pdfwkhtmltopdf-binary gem 从 HTML 生成 PDF。但是在生产中生成 PDF 时存在一些问题。货币符号显示不正确,但在开发中运行良好。

这是我的 PDF 图片。

my production pdf screenshot

我的 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

我尝试了很多从 Stackoverflow 到其他类似问题的解决方案。他们都建议我在布局文件中添加元。我还在布局文件中添加了它。

已编辑

我的 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>

如果有人能指出在这种情况下出了什么问题,我将不胜感激。提前致谢。

【问题讨论】:

  • 可能是字体问题。我过去在heroku上遇到过同样的问题。解决方案是将字体 buildpack 添加到 heroku 配置。

标签: ruby-on-rails wicked-pdf wkhtmltopdf-binary


【解决方案1】:

其他编码问题(看起来设置得很好,只有我会使用Content-Type 确定)您可能在生产机器上遇到字体问题。

要尝试的事情:

  1. 渲染其他 unicode 字符,如果它们正确渲染 - 这不是编码问题
  2. 较新的wkhtmltopdf-binary -(当时为0.12.4)或wkhtmltopdf_binary(其他宝石,目前已过时)
  3. 确保生产服务器已安装和设置 fontconfiglibfontconfig,并且它包含您正在使用的字体
  4. 使用 webfonts(在我之前的测试中,eot 格式似乎可以工作,但现在 woff2 可能会更好)

【讨论】:

  • 谢谢!在我的服务器上安装 fontconfig 后,Vasfed 已解决。非常感谢人!我真的很感激:)
  • @Riskyleopard 很高兴这有帮助)考虑将答案标记为解决方案并支持
猜你喜欢
  • 2010-12-01
  • 1970-01-01
  • 2010-11-26
  • 1970-01-01
  • 1970-01-01
  • 2013-11-12
相关资源
最近更新 更多