我正在使用ROR和Prawn生成PDF。PDF文件有英文(表格标签)和日文或其他FE语言(用户输入的数据)。
我发现了与此相关的问题,其中ipamp.ttf被建议。我安装了这个字体,它打印日文很漂亮。问题是,它不支持英语!我两样都需要。
为了以防万一,下面是我安装ipamp的方法。我只是在initialize方法中调用font:
font("lib/assets/ipamp.ttf")
我找到了谷歌的诺托字体,但它们是ttc格式的,大虾不能使用。
我正在寻找一个解决方案,以支持所有欧盟和远东语言,同时,在一个PDF文档,没有一堆的逻辑,以确定我试图显示的文本是否是欧盟/拉丁美洲或远东(和切换字体的基础上)。听起来会很脆弱。
字体文件的大小将不会成为问题,因为PDF将在服务器上呈现并作为PDF发送到客户端。
谢谢你,谢谢
2条答案
按热度按时间tjrkku2a1#
这是解决方案,从这篇文章(this post)和一些试验和错误拼凑起来。
关键是Prawn支持fallback字体。你必须将它们下载到你的项目中,然后更新Prawn的字体家族以包含它们,然后包含一个名为“fallback_fonts”的方法,以便Prawn在意识到它有一个不知道如何渲染的Unicode字符时使用。
8fsztsew2#
gem 'prawn' gem 'prawn-unicode'
app/controllers/pdf_controller.rb
class PdfController < ApplicationController def generate_pdf pdf pdf = Prawn::Document.new
结束结束