【问题标题】:Fontnames containing comma in one context and hyphen in another在一种上下文中包含逗​​号而在另一种上下文中包含连字符的字体名称
【发布时间】:2011-12-02 14:57:54
【问题描述】:

如果我使用 Acrobat Professional 9 创建一个 PDF,其中包含一个句子并将该句子设为“Georgia Bold”,然后保存,我最终会得到一个引用字体“Georgia,Bold”的 PDF。

如果我从 c:\windows\fonts\georgiab.ttf 获取该字体并使用以下代码和 itext 4.2 对其进行询问,我最终会得到一个字体名称“Georgia-Bold”

 字符串路径 = "georgiab.ttf";
   BaseFont baseFont = BaseFont.createFont(路径,BaseFont.WINANSI,BaseFont.EMBEDDED);
   System.out.println("字体"+baseFont.getPostscriptFontName()+"在"+路径中找到);

我试图确定为什么在 PDF 文件中使用时,字体名称带有逗号,而在 PDF 文件之外使用时,字体名称带有连字符。

【问题讨论】:

    标签: itext acrobat


    【解决方案1】:

    您从getPostscriptFontName() 获得的名称是字体文件中的实际名称。对于 TrueType 字体,这是在 TrueTypeFont.java (line 498 in 5.1.1.3) 的 BaseFont 方法中解析的。

    为什么 Adob​​e 使用逗号?这正是他们决定使用的。如果我猜他们可能会选择逗号,因为某些字体在其名称中使用连字符,但大多数(如果有的话)从不使用逗号。所以他们选择了My-Awesome-Font,Bold,而不是My-Awesome-Font-Bold。用户可以看出他们正在使用一种字体的粗体变体,而不仅仅是一种恰好包含“粗体”一词的字体。

    【讨论】:

    • 根据您的回答,我相信如果我想将安装的字体“Georgia”与 PDF“Georgia,Bold”中引用的字体相匹配,我可以去掉“,Bold”部分然后应用粗体作为属性?
    • 我想是这样,但我不能 100% 确定您所说的“属性”是什么意思。您是在谈论 HTML 或类似的东西,其中您指定带有附加细节(例如“粗体”和/或“斜体”)的基本字体?
    • 在 iText 中,使用 FontFactory.getFont("Georgia", 14, Font.BOLD)
    猜你喜欢
    • 2015-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-06
    • 2013-05-31
    相关资源
    最近更新 更多