首页 > 解决方案 > Rails Prawn 文档的嵌入式字体错误

问题描述

就在上周,这一切正常,现在我的 PDF 文档给了我这个“无法提取嵌入字体 '1491bd-SourceHanSans-Normal'。某些字符可能无法正确显示。” 错误。

一直在寻找几个小时,我查看了我最近的提交,找不到任何会导致这个问题突然出现的重大变化。

这是我用来进行错误测试的基本代码。

def invoice_pdf
    require "prawn"
    # document set up
    Prawn::Document.generate("PDF.pdf", :page_size => "A4", :margin => [25], disposition: "inline") do |pdf|
        # set utf-8 japanese font
        pdf.font_families.update("SourceHan" => {
            :normal => ".fonts/SourceHan/SourceHanSans-Normal.ttf",
        })
        pdf.font "SourceHan" 
        pdf.font_size 10
        pdf.text 'ハロー ワルド。'
        send_data pdf.render, type: 'application/pdf', disposition: :inline
    end
end

在 Google Chrome 中打开时,它会正确显示。但是使用 acrobat 或其他浏览器(如使用默认系统预览应用程序的 Firefox)它会给我错误。

想法?

标签: ruby-on-railsrubypdfprawn

解决方案


在最近发布的 ttfunk 1.6.0 gem 中嵌入字体存在一个已知问题。

你最近更新了那个宝石吗?如果是这样,请尝试在您的 Gemfile 中将其降级为 1.5.0,看看是否有帮助。


推荐阅读