Answers:
是的,WOFF格式是基于表的sfnt结构(由TrueType和OpenType使用)的容器。它将一些元数据添加到TTF / OTF字体,并且还可以压缩实际的字体数据。
如果要将WOFF转换为包装的TTF / OTF字体,可以使用Mozilla的Jonathan Kew创建的woff2sfnt工具。他为OS X和Windows 提供了sfnt2woff-tool的预编译二进制文件(从TTF / OTF转换为WOFF),但没有提供woff2sfnt-tool的预编译二进制文件(从WOFF转换为TTF / OTF),因此您必须从资源。如果您具有可用的编译器工具链,则轻松完成–只需下载source-zip-file并运行即可make
。
当您拥有有效的woff2sfnt二进制文件时,您只需执行以下操作:
$ ./woff2sfnt font.woff > font.otf
生成的字体是可以使用的普通TTF / OTF字体,但是请注意,如果您从网站上下载WOFF字体,则应该遵守该字体的许可。许可信息可以包含在WOFF元数据中。
woff2sfnt
和的软件包sfnt2woff
称为woff-tools
按照Erik Tjernlund的链接,我下载了源代码并编译了Windows woff2sfnt
和sfnt2woff
Windows 的i386可执行文件。您可以在这里从我的Dropbox下载它。
(请注意,这也适用于x86-64机器。实际上,您无法为x86-64构建它,因为Jonathan Kew提供的二进制对象适用于i386体系结构类型。)
您可以使用FontForge进行转换-它是可以创建和编辑字体文件的应用程序。
您安装它,然后您可以右键单击字体文件,然后选择“属性”。在“打开方式”旁边,单击“更改”,然后转到“浏览”:
然后,您需要找到FontForge可执行文件的位置-在Windows 7 64bit上,它位于以下位置:
C:\Program Files (x86)\FontForge\run_fontforge.exe
打开字体后,您将忽略有关错误的表格类型和内容的大多数错误,然后单击“生成字体”:
选择保存位置,然后选择ttf
或otf
作为导出格式。根据要导入的字体,OTF字体有时可能具有更高的质量。
Fontforge可以使用多种导出和导入字体类型,因此它也可以用于转换其他字体。这对于制作或重新创建自己的字体也非常有用。这里有有关FontForge的其他用法的指南。
我得到了woff2sfnt源代码,可从其他参考中整理以下步骤来为Windows 10 x64编译(即,我在这里不主张任何原始想法)
gcc -o woff2sfnt.exe woff2sfnt.c woff.c compress.c uncompr.c deflate.c inflate.c adler32.c inffast.c crc32.c trees.c zutil.c inftrees.c
我意识到这一切都是蛮力的,因为我只是一个C#程序员,而现代工具却提供了软肋,而没有正确地进行gcc的准备。
要将WOFF2文件转换为macOS上的ttf,请尝试
brew install fonttools
ttx font.woff
ttx font.ttx
ttx font.woff
会将您的.woff
文件转换为.ttx
文件(XML字体文件格式)。然后ttx font.ttx
将转换.ttx
为.ttf
。
如果ttx font.ttx
无法导入导出的文件,则可以尝试将其font.ttf
拖入“字体书”中,读取错误内容(单击字体名称旁边的下拉箭头)并将其修复在.ttx
文件中。例如,我必须添加一个namerecord
。
对于批量转换,请尝试
for f in *.woff; do ttx $f; done
for f in *.ttx; do ttx $f; done
我也从这个仓库尝试了谷歌的woff2
brew tap bramstein/webfonttools
brew install woff2
woff2_decompress font.woff
但是这并没有产生任何.ttf
或.otf
文件。
最后,我用谷歌搜索了“ fontname otf”并安装了它。