让 "Duchess" 字体正常工作
Getting the "Duchess" font to work
我从 Fontpalace 下载了一些 TTF 字体到我在 zackel.com/fonts/ 的网页上,然后我使用 @font 访问它们。这适用于 "Constitution" 字体,以及我尝试过的所有其他字体 - 除了 "Duchess" ,正如你在这个 jsFiddle - http://jsfiddle.net/mzvswy4e/4/ 中看到的那样。我试过从 Fontpalace 以外的其他来源复制 Duchess ttf 文件到我的 font/ 目录,但结果总是一样的:它不起作用。
有人知道这是怎么回事吗?
谢谢。
@font-face {
font-family:constitution;
src: url(https://zackel.com/fonts/Constitution.ttf);
}
@font-face {
font-family:duchess;
src: url(https://zackel.com/fonts/Duchess.ttf);
}
(免责声明:以下是目前样本量为 2 的实验性工作,但得到了 https://github.com/devongovett/pdfkit/issues/121 的证实:某些应用程序似乎需要 Unicode cmap。)
我用ttfdump
查看了两种字体,而Duchess.ttf在文件中只有两种编码:
'cmap' Table - Character to Glyph Index Mapping Table
'cmap' version: 0
number of encodings: 2
number of subtables: 2
Encoding 0. PlatformID: 1
EcodingID: 0
SubTable: 0, Offset: 0x00000014
Encoding 1. PlatformID: 3
EcodingID: 1
SubTable: 1, Offset: 0x0000011a
The specs suggest that's for Mac (Id 1) and Windows (Id 3, Encoding 1 is Unicode Basic Plane, UCS-2), 而工作字体有三个:
'cmap' Table - Character to Glyph Index Mapping Table
'cmap' version: 0
number of encodings: 3
number of subtables: 2
Encoding 0. PlatformID: 0
EcodingID: 0
SubTable: 0, Offset: 0x00000124
Encoding 1. PlatformID: 1
EcodingID: 0
SubTable: 1, Offset: 0x0000001c
Encoding 2. PlatformID: 3
EcodingID: 1
SubTable: 0, Offset: 0x00000124
额外的是 Unicode 1.0。请注意偏移量与 Windows 编码的相同之处,因为它们基本上是相同的 Unicode。我大胆猜测浏览器会需要 Unicode 编码。我假设像 FontForge 这样的工具可以添加它,因为它只是指向您已经拥有的 table 的另一个指针。
我从 Fontpalace 下载了一些 TTF 字体到我在 zackel.com/fonts/ 的网页上,然后我使用 @font 访问它们。这适用于 "Constitution" 字体,以及我尝试过的所有其他字体 - 除了 "Duchess" ,正如你在这个 jsFiddle - http://jsfiddle.net/mzvswy4e/4/ 中看到的那样。我试过从 Fontpalace 以外的其他来源复制 Duchess ttf 文件到我的 font/ 目录,但结果总是一样的:它不起作用。
有人知道这是怎么回事吗?
谢谢。
@font-face {
font-family:constitution;
src: url(https://zackel.com/fonts/Constitution.ttf);
}
@font-face {
font-family:duchess;
src: url(https://zackel.com/fonts/Duchess.ttf);
}
(免责声明:以下是目前样本量为 2 的实验性工作,但得到了 https://github.com/devongovett/pdfkit/issues/121 的证实:某些应用程序似乎需要 Unicode cmap。)
我用ttfdump
查看了两种字体,而Duchess.ttf在文件中只有两种编码:
'cmap' Table - Character to Glyph Index Mapping Table
'cmap' version: 0 number of encodings: 2 number of subtables: 2
Encoding 0. PlatformID: 1 EcodingID: 0 SubTable: 0, Offset: 0x00000014
Encoding 1. PlatformID: 3 EcodingID: 1 SubTable: 1, Offset: 0x0000011a
The specs suggest that's for Mac (Id 1) and Windows (Id 3, Encoding 1 is Unicode Basic Plane, UCS-2), 而工作字体有三个:
'cmap' Table - Character to Glyph Index Mapping Table
'cmap' version: 0 number of encodings: 3 number of subtables: 2
Encoding 0. PlatformID: 0 EcodingID: 0 SubTable: 0, Offset: 0x00000124
Encoding 1. PlatformID: 1 EcodingID: 0 SubTable: 1, Offset: 0x0000001c
Encoding 2. PlatformID: 3 EcodingID: 1 SubTable: 0, Offset: 0x00000124
额外的是 Unicode 1.0。请注意偏移量与 Windows 编码的相同之处,因为它们基本上是相同的 Unicode。我大胆猜测浏览器会需要 Unicode 编码。我假设像 FontForge 这样的工具可以添加它,因为它只是指向您已经拥有的 table 的另一个指针。