wicked_pdf:生产环境中的 UTF-8 编码问题
wicked_pdf: UTF-8 encoding issue on production
在我的 Rails 5 应用程序中,我使用 wicked_pdf 和 wkhtmltopdf-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
我尝试了很多来自 Whosebug 的解决方案来解决其他类似问题。他们都建议我在布局文件中添加元数据。我也在我的布局文件中添加了它。
已编辑
我的 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>
如果有人能指出这种情况下出了什么问题,我将不胜感激。提前致谢。
其他编码问题(看起来设置得很好,只有我会使用 Content-Type
来确定)您可能在生产机器上遇到字体问题。
要尝试的事情:
- 渲染其他 unicode 字符,如果其中一些字符正确渲染 - 这不是编码问题
- 较新的
wkhtmltopdf-binary
-(当时为 0.12.4),或 wkhtmltopdf_binary
(其他 gem,目前已过时)
- 确保生产服务器已安装和设置
fontconfig
和 libfontconfig
,并且它包含您正在使用的字体
- 使用 webfonts(在我之前的测试中,eot 格式似乎可以工作,但现在 woff2 可能更好)
在我的 Rails 5 应用程序中,我使用 wicked_pdf 和 wkhtmltopdf-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
我尝试了很多来自 Whosebug 的解决方案来解决其他类似问题。他们都建议我在布局文件中添加元数据。我也在我的布局文件中添加了它。
已编辑
我的 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>
如果有人能指出这种情况下出了什么问题,我将不胜感激。提前致谢。
其他编码问题(看起来设置得很好,只有我会使用 Content-Type
来确定)您可能在生产机器上遇到字体问题。
要尝试的事情:
- 渲染其他 unicode 字符,如果其中一些字符正确渲染 - 这不是编码问题
- 较新的
wkhtmltopdf-binary
-(当时为 0.12.4),或wkhtmltopdf_binary
(其他 gem,目前已过时) - 确保生产服务器已安装和设置
fontconfig
和libfontconfig
,并且它包含您正在使用的字体 - 使用 webfonts(在我之前的测试中,eot 格式似乎可以工作,但现在 woff2 可能更好)