【发布时间】:2017-05-25 00:40:21
【问题描述】:
我正在尝试使用 wicked_pdf(版本 1.1)和 wkhtmltopdf-binary gems 从 html 页面创建 pdf。
我的 html 页面包含一个日历表情符号,无论我使用什么字体,它都能在浏览器中很好地显示
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv='content-type' content='text/html; charset=utf-8' />
<style>
unicode {
font-family: 'OpenSansEmoji', sans-serif;
}
@font-face {
font-family: 'OpenSansEmoji';
src: url(data:font/truetype;charset=utf-8;base64,<-- encoded_font_base64_string-->) format('truetype');
}
</style>
</head>
<body>
<div><unicode>📅</unicode></div>
</body>
</html>
但是,当我尝试在 rails 控制台中使用 gem 的 WickedPdf.new.pdf_from_html_file 方法生成 PDF 时,
File.open(File.expand_path('~/<--pdf_filename-->.pdf'), 'wb+') {|f| f.write WickedPdf.new.pdf_from_html_file('<--absolute_path_of_html_file-->')}
我得到以下结果:
PDF result with unknown character
如您所见,第一个日历图标显示正确,但是显示了第二个字符,我们不知道它来自哪里。
我已经按照相关帖子 stackoverflow_emoji_wkhtmltopdf 的建议通过 UTF-8 和 UTF-16 和代理对的编码进行了调查,并查看了这个问题 wkhtmltopdf_git_issue,但仍然无法使这个字符消失!
如果您有任何线索,我们非常欢迎。
提前感谢您的帮助!
编辑
根据 Eric Duminil 和 petkov.np 的 cmets,我可以确认 - 上面的代码在 Linux 上正常工作。似乎这是 Linux 与 MacOS 的问题。谁能建议 MacOS 绑定问题的核心是什么以及是否可以修复?
【问题讨论】:
-
它适用于您的 html 和 ruby 代码。宝石清单 | grep pdf : pdf-core (0.6.1) pdf-inspector (1.2.1) pdf-reader (1.4.0) wicked_pdf (1.1.0) wkhtmltopdf-binary (0.12.3.1) ruby -v: ruby 2.3.1p112 ( 2016-04-26 修订版 54768) [x86_64-linux] 在 linux mint 17 上
-
@EricDuminil 我已经在 Linux 环境下进行了测试,它可以工作。刚刚编辑了我的问题
标签: ruby-on-rails ruby unicode wkhtmltopdf wicked-pdf