Abs*_*ñon 8 ruby prawn truetype emoji
我有一个ruby脚本来生成带有一些文本的pdf文档.该文本中包含表情符号.
第一行文本的问题在于,当它们应该是单个表情符号(三个成员的家族)时,它会打印三个表情符号,这些表情符号看起来像十字架.
第二行的问题是它只打印一个正方形而不是预期的表情符号(嘘脸).我尝试过其他一些字体,但它仍然无法正常工作.这些是字体:
DejaVuSans
IPAM
NotoSans介质
我找不到问题
有什么遗漏?
难道我做错了什么?
安装宝石,字体在正确的位置
require "prawn"
require "prawn/emoji"
require "prawn/measurement_extensions"
$pdf = Prawn::Document.new(:page_size => [200.send(:mm),200], :margin => 0)
$pdf.font "./resources/Montserrat-Medium.ttf"
st = "\u{1F468}\u200D\u{1F469}\u200D\u{1F466}".encode("UTF-8")
st2="\u{1F92B}".encode("UTF-8")
$pdf.draw_text st,:at => [10, 100]
$pdf.draw_text st2,:at => [10, 80]
$pdf.render_file "test.pdf"
Run Code Online (Sandbox Code Playgroud)
事实证明,Prawn 不知道如何解析连接的表情符号(由一组由 \u200D 连接的简单表情符号组成的表情符号)。Prawn/emoji 应该可以做到这一点,但用于识别表情符号的正则表达式存在一个错误,导致连接的表情符号被单独绘制。
此外,所使用的索引和图片库有点过时了。
解决方案是在 prawn/emoji 源代码中的 Drawer 类中替换 @emoji_index.to_regexp 为一个可以识别加入的表情符号并更新表情符号库的正则表达式,然后运行更新索引的任务就可以了去。
字体与此无关。
| 归档时间: |
|
| 查看次数: |
327 次 |
| 最近记录: |