如何解决如何在HexaPDF中使用多种字体,即复合字体
我们的用户给了我们表情符号和许多其他奇怪的字符,内置的Helvetica无法处理。 Google的Noto字体本身也不行-我需要弄清楚如何在HexaPDF中声明Noto字体家族,而我不知道如何使用给定的文档来做到这一点。 OpenSans是一种改进,但我仍然希望字形覆盖面更多。
更新:
我使用此方法设置字体:
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a id="12" class="addToCart">Item 12</a><br />
<a id="13" class="addToCart">Item 13</a>
<div class="cart--counter">**</div>
<br />
<div id="cart"></div>
<br />
<div id="cart_button" class="hidden">cart button</div>
但是,没有Noto字体可用于此操作-我会遇到类似“缺少字形-'A'”的错误
我能做的最好的就是使用OpenSansEmoji,并用以下代码块替换丢失的字形:
def self.pdf_summary_font
@@pdf_summary_font ||= File.open(Rails.root.join('public','OpenSansEmoji.ttf'),'r')
end
canvas = page.canvas(type: :overlay)
canvas.font(self.class.pdf_summary_font,size: 10)
解决方法
看看https://hexapdf.gettalong.org/documentation/reference/api/HexaPDF/index.html和配置选项“ font_map”。这使您可以声明任何TrueType文件并使用它。
您还可以直接通过Canvas#font
方法使用字体文件的路径。
如果您需要覆盖多种字符,则需要使用覆盖所有字符的单个字体,the fonts included in this ZIP file中的一种可能应该可以工作(Google表示582种语言,包括237个区域)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。