小编ric*_*892的帖子

wicked_pdf在unicode pdf转换(ruby)上显示未知字符

我正在尝试使用wicked_pdf(版本1.1)和wkhtmltopdf-binary宝石从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>&#128197;</unicode></div>
 </body>
 </html>
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试使用WickedPdf.new.pdf_from_html_filerails控制台中gem 的方法生成PDF时,

 File.open(File.expand_path('~/<--pdf_filename-->.pdf'), 'wb+') {|f| f.write  WickedPdf.new.pdf_from_html_file('<--absolute_path_of_html_file-->')}  
Run Code Online (Sandbox Code Playgroud)

我得到以下结果:

PDF结果具有未知字符

如您所见,第一个日历图标已正确显示,但是显示第二个字符,我们不知道它来自何处.

我已经通过UTF-8和UTF-16编码进行了调查,并且按照相关帖子stackoverflow_emoji_wkhtmltopdf的建议调查了代理对,并查看了这个问题wkhtmltopdf_git_issue,但仍然不能使这个角色消失!

如果您有任何线索,那就非常受欢迎了.

在此先感谢您的帮助!

编辑

根据Eric Duminil和petkov.np的评论,我可以确认 - 上面的代码在Linux上适用于我.这似乎是Linux vs MacOS问题.任何人都可以建议MacOS绑定中的核心问题以及是否可以修复它?

ruby unicode ruby-on-rails wkhtmltopdf wicked-pdf

8
推荐指数
1
解决办法
1833
查看次数

标签 统计

ruby ×1

ruby-on-rails ×1

unicode ×1

wicked-pdf ×1

wkhtmltopdf ×1