我知道Online Font Converter 之类的服务,但我对离线解决方案感兴趣,最好是通过命令行。有谁知道如何离线将 WOFF 转换为 OTF/TTF 的工具或工作流程?
7 回答
以下是制作 WOFF 文件的参考代码:http: //people.mozilla.org/~jkew/woff/我有一面镜子:https ://github.com/samboy/WOFF
要编译和安装,请确保您已安装 zlib 开发库(例如在 CentOS6yum -y install zlib-devel
中以 root 身份安装),然后
git clone https://github.com/samboy/WOFF
cd WOFF
make
然后,作为根:
cp sfnt2woff /usr/local/bin
完成此操作后,要制作网络字体,请进入包含 .ttf 文件的目录,然后运行 sfnt2woff
sfnt2woff Chortle2014f.ttf
这将创建一个 Chortle2014f.woff webfont 文件。将“Chortle2014f.ttf”替换为要转换的实际网络字体的名称。
我提供的第一个链接有 Windows 和 MacOS 二进制文件,供不想安装编译器的人使用。
以下是制作 WOFF2 文件的参考代码:https ://github.com/google/woff2请注意,此代码不会在 CentOS6 中安装,但在 CentOS7 中编译安装正常:
git clone --recursive https://github.com/google/woff2.git
cd woff2
make clean all
woff2 字体生成类似:
woff2_compress Chortle2014f.ttf
我不喜欢当前最佳答案是 Python 脚本这一事实,而且似乎也有人说它不起作用。此外,目前的答案似乎都没有提到使用zopfli
压缩算法编译 WOFF 转换器,这优于zlib
其他工具使用的标准算法。由于这些原因,我决定走“正确”(即非脚本)路线并在此过程中添加我自己的答案。
注意: 以下两个实用程序的编译过程都非常简单,只需复制和运行我在下面提供的代码片段就更容易了,但它们仍然需要一个工作编译器。如果您之前没有从源代码编译过软件,您可能需要先设置编译器环境。如果您使用的是 Cygwin,您可以按照我在此处回答的第一部分来设置 MinGW-w64 交叉编译器。
WOFF CLI 转换器(带 ZOPFLI 压缩)
首先,通过将以下所有内容粘贴到终端并按 来编译和安装sfnt2woff 1:Enter
git clone https://github.com/bramstein/sfnt2woff-zopfli.git woff &&
cd woff &&
make &&
chmod 755 woff2sfnt-zopfli sfnt2woff-zopfli &&
mv woff2sfnt-zopfli sfnt2woff-zopfli /usr/local/bin &&
rm -rf ../woff
编译并安装该工具后,通过运行将 TTF 或 OTF 文件转换为 WOFF:
sfnt2woff-zopfli <inputfile>.ttf
您还可以使用该-n
选项来增加程序运行的迭代次数,以转换时间为代价增加压缩(默认迭代次数为 15)。
要将当前目录中的所有文件转换为 WOFF:
for i in *; \
do sfnt2woff-zopfli.exe "$i"; \
done
WOFF2 CLI 转换器(带 Brotli 压缩)
首先,通过将以下所有内容粘贴到终端并按 来编译和安装Google 的 woff2 工具:Enter
git clone --recursive https://github.com/google/woff2.git &&
cd woff2 &&
make clean all &&
mv woff2_compress woff2_decompress woff2_info /usr/local/bin &&
rm -rf ../woff2
编译并安装该工具后,通过运行将单个 TTF 或 OTF 文件转换为 WOFF2:
woff2_compress.exe <inputfile>.ttf
要将当前目录中的所有文件转换为 WOFF2:
for i in *; \
do woff2_compress.exe "$i"; \
done
您甚至可以将 WOFF2 文件转换回 TTF 或 OTF:
woff2_decompress.exe <inputfile>.woff2
1请注意,此处的 SFNT 指的是 TTF 和 OTF 字体格式都围绕构建的 SFNT 表格式。
我也一直在找这个,但是很抱歉,我找不到离线的,但我找到了这个:
http://orionevent.comxa.com/woff2otf.html - 不再可用
真的很棒
编辑:找到一个命令行工具
https://superuser.com/questions/192146/converting-from-woffweb-open-font-format
如果您希望离线执行此操作,请按照Erik Tjernlund 在 Super User 上的回答,您可以下载源代码并编译 and 的woff2sfnt
可执行文件sfnt2woff
。
撰写本文时的最新版本来自 2009/09/09。不幸的是,我发现它似乎不适用于所有 WOFF 文件,有时会抱怨签名错误,有时只是给出损坏的 OTF 文件。
我使用上面由 barethon链接的 python 脚本编写了一个WOFF 到 OTF 的在线 javascript 转换器
我意识到这个线程已经有一段时间不活动了,但是在一些 stackoverflow 用户的帮助下,我能够使用上面提到的 python 脚本 [ @hanikesn的woff2otf.py ] 创建一个允许批量转换 woff 文件的工作流.
如果不是为了原始海报的使用,那么对于遇到此线程以寻找相同内容的其他人,请查看我的线程以获取有关如何执行此操作的详细信息:
修改 Python 脚本以批量转换目录中的所有“WOFF”文件
即使您不需要批量转换,onlinefontconverter.com 也会产生不可靠的结果,并且everythingfonts.com 的转换限制为 0.4 MB,除非您升级到付费帐户,而且与离线解决方案相比,两者都非常耗时。
祝你好运!