将字体从WOFF(Web开放字体格式)转换为我可以在MS Word中使用的格式


26

我有一个WOFF文件,该文件是我从网站上下载的,要转换成Microsoft Word文档等格式。有没有免费的方法可以做到这一点?经过大量搜索后,我仍未找到解决方法,因此我向超级用户寻求帮助。


3
如果包含字体名称(或找到WOFF文件的位置的URL),则我们可能能够找到不需要转换且可能包含更多字符的TTF或OTF版本的源。
Dan D.

Answers:


23

是的,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元数据中。


5
woff2sfnt工具找不到...
Muhammad Umer

1
-1没有提供正确的链接
Supuhstar

2
劳驾?我提供的链接(一年多以前)仍然有效。我也明确指出您必须自己编译该工具。否决投票之前,请先阅读。
Erik Tjernlund 2014年

6
对于Ubuntu Linux和类似系统,包含woff2sfnt和的软件包sfnt2woff称为woff-tools
yuvilio 2014年

2
链接坏了吗?
PrimitiveNom '18

4

按照Erik Tjernlund的链接,我下载了源代码并编译了Windows woff2sfntsfnt2woffWindows 的i386可执行文件。您可以在这里从我的Dropbox下载它。

(请注意,这也适用于x86-64机器。实际上,您无法为x86-64构建它,因为Jonathan Kew提供的二进制对象适用于i386体系结构类型。)


找不到cygwin1.dll
Muhammad Umer

@MuhammadUmer显然,您需要安装Cygwin才能使其正常运行。
Paul Lammertsma

对于没有Cygwin经验的读者,您需要cygwin1.dll(来自“ cygwin”),cygz.dll(来自“ zlib0”)和cyggcc_s-1.dll(来自“ libgcc1”)。一旦这些文件位于同一目录中,它将正常工作。
seagull

2

您可以使用FontForge进行转换-它是可以创建和编辑字体文件的应用程序。

您安装它,然后您可以右键单击字体文件,然后选择“属性”。在“打开方式”旁边,单击“更改”,然后转到“浏览”: 在此处输入图片说明

然后,您需要找到FontForge可执行文件的位置-在Windows 7 64bit上,它位于以下位置:

C:\Program Files (x86)\FontForge\run_fontforge.exe

打开字体后,您将忽略有关错误的表格类型和内容的大多数错误,然后单击“生成字体”:

选择保存位置,然后选择ttfotf作为导出格式。根据要导入的字体,OTF字体有时可能具有更高的质量。

在此处输入图片说明

Fontforge可以使用多种导出和导入字体类型,因此它也可以用于转换其他字体。这对于制作或重新创建自己的字体也非常有用。这里有有关FontForge的其他用法的指南。

在此处输入图片说明


2

我得到了woff2sfnt源代码,可从其他参考中整理以下步骤来为Windows 10 x64编译(即,我在这里不主张任何原始想法)

  • Mozilla源主机似乎已死,请在此处找到它:https : //github.com/wget/sfnt2woff ...将所有内容提取到工作文件夹中
  • 使用http://tdm-gcc.tdragon.net/作为友好的gcc编译器堆栈安装程序
  • 除了已经存在的io.h,还在#ifdef WIN32下的woff2sfnt.c顶部添加了#include <fcntl.h>
  • http://www.zlib.net/下载了zlib源码,并将其所有根.c和.h文件复制到了我的工作文件夹中
  • 我的gcc命令行: 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的准备。


1

要将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”并安装了它。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.