Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 使用外部TTF字体使用prawn生成带有日语文本的PDF_Ruby_Ruby On Rails 4_Cjk_Prawn - Fatal编程技术网

Ruby 使用外部TTF字体使用prawn生成带有日语文本的PDF

Ruby 使用外部TTF字体使用prawn生成带有日语文本的PDF,ruby,ruby-on-rails-4,cjk,prawn,Ruby,Ruby On Rails 4,Cjk,Prawn,在Prawn::BASEDIR}/data/fonts/ 我尝试了gkai00mp.ttf,但生成的PDF仅显示第一个字母“千" 属于千葉, 比如说 我觉得这种字体适合汉字 font("#{Prawn::BASEDIR}/data/fonts/gkai00mp.ttf") do text "千葉" end 是否可以上载和使用外部字体? 如果是,可从何处获取该字体 我的环境: 最新的Ruby和Rails。 对虾0.12.0版我想在这里与大家分享解决方案 我也在这里发布了这个问题 建议是: P

Prawn::BASEDIR}/data/fonts/

我尝试了
gkai00mp.ttf
,但生成的PDF仅显示第一个字母“千" 属于千葉, 比如说

我觉得这种字体适合汉字

font("#{Prawn::BASEDIR}/data/fonts/gkai00mp.ttf") do
  text "千葉"
end
是否可以上载和使用外部字体? 如果是,可从何处获取该字体

我的环境: 最新的Ruby和Rails。
对虾0.12.0版

我想在这里与大家分享解决方案

我也在这里发布了这个问题 建议是:

Prawn附带的TTF字体用于测试和使用 这本手册…不适合经常使用。请在网上搜索 “免费日语TTF字体”,我相信你可能会找到一些东西

因此,我在谷歌上搜索并找到了mona.ttf,并进行了测试,特别是,这是有效的。

我最近使用了Prawn(2.0.2版和
Prawn table
0.2.2版)生成了一个日语PDF,不幸的是,在接受的答案中没有发布任何ttf字体(尽管如此,公认的答案仍然对了解日语文本不能用Prawn的内置字体呈现有很大帮助!)

然而,我很幸运地使用了Prawn中的TTF文件,特别是他们在页面上列出的包含IPA Mincho和IPA Gothic字体的“4字体包”。我使用IPAPMincho字体(
ipamp.TTF
)作为“普通”字体,使用IPAPGothic(
ipagp.TTF
)作为“粗体”它们是不同的字体,但其中一种对我来说是另一种的“粗体版”

在我的Prawn配置中,我尽可能使用默认字体(比如,对于英文文档),但对于日语的TTF文件,它们是在动态中配置的。这导致代码看起来类似于以下内容:

Prawn::Document.generate("MyJapaneseDocument.pdf") do |pdf|
  # assume `font_name` here is something like "IPA",
  # ie not a font that is shipped with the Prawn gem
  unless Prawn::Font::AFM::BUILT_INS.include?(font_name)
    pdf.font_families.update(
      font_name => {
        normal: "path/to/ipamp.ttf",
        bold: "path/to/ipagp.ttf"
      }
    )
  end
  pdf.font font_name
end

+1用于跟进和解决您自己的问题(也请勾选您自己的答案以解决问题)。如果您使用了任何其他有趣的代码使其工作,请将其添加到您的答案中,以供未来用户使用。