I have a WOFF file I downloaded from a website that I want to convert for use in Microsoft Word documents and such. Is there any free way to do this? After much searching I have not found a way, so I am turning to Super User for help.
Yes, the WOFF format is a container for the table-based sfnt structure (used by TrueType and OpenType). It adds some meta data to the TTF/OTF font and can also compress the actual font data.
If you want to convert from WOFF to the wrapped TTF/OTF font, you can use the woff2sfnt-tool created by Jonathan Kew at Mozilla. He provides pre-compiled binaries for the sfnt2woff-tool (convert from TTF/OTF to WOFF) for OS X and Windows, but not for the woff2sfnt-tool (convert from WOFF to TTF/OTF), so you have to compile from the source. Easily done if you have a working compiler toolchain — just download the source-zip-file and run
When you have a working woff2sfnt binary, you just do:
$ ./woff2sfnt font.woff > font.otf
The resulting font is an ordinary TTF/OTF font that you can use, but please note that if you download a WOFF font from a web site, you are supposed to comply with the license of this font. Licensing information can be included in the WOFF meta data.
Following Erik Tjernlund's link, I downloaded the source and compiled a i386 executable of
sfnt2woff for Windows. You can download it from my Dropbox here.
(Note that this works on x86-64 machines as well. In fact, you can't build it for x86-64 because the binary object provided by Jonathan Kew is for the i386 architecture type.)
You can use FontForge to convert it - it is an application that can create and edit font files.
You then need to find the location of the FontForge executable - on Windows 7 64bit it is located here:
C:\Program Files (x86)\FontForge\run_fontforge.exe
Once you have opened the font, you ignore most errors about wrong table types and stuff, and click 'Generate Fonts':
Select the save location, and
otf as the export format. OTF fonts sometimes can have higher quality depending on the font you are importing.
Fontforge can use a variety of export and imported font types, so it can be used to conver other fonts as well. It is also very useful for making or recreating your own fonts. There is a guide here with other uses of FontForge.
i got the woff2sfnt source to compile for windows 10 x64 with the following steps cobbled together from other references (i.e. i'm not claiming any original thought here)
- the mozilla source host appears to be dead, found it here: https://github.com/wget/sfnt2woff... extracted all that to a working folder
- used http://tdm-gcc.tdragon.net/ as a friendly gcc compiler stack installer
- added #include <fcntl.h> at the top of woff2sfnt.c under #ifdef WIN32, in addition to io.h already there
- downloaded the zlib source from http://www.zlib.net/ and copied all its root .c and .h files into my working folder
- my gcc command line:
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
i realize this is all very brute force, for i'm a mere C# programmer with the soft underbelly afforded by modern tools, uninitiated with doing gcc the right way.
to convert WOFF2 files to ttf on macOS, try
brew install fonttools ttx font.woff ttx font.ttx
ttx font.woff will convert your
.woff file to a
.ttx file (an XML font file format). Then
ttx font.ttx will convert the
.ttx to a
If the file you get out of
ttx font.ttx can't be imported you can try dragging
font.ttf into Font Book, reading what the errors are (click the drop down arrow next to the font name) and fixing them in the
.ttx file. For example, I had to add a
For batch conversion try
for f in *.woff; do ttx $f; done for f in *.ttx; do ttx $f; done
I also tried google's woff2 from this repo
brew tap bramstein/webfonttools brew install woff2 woff2_decompress font.woff
but that didn't create any
In the end I googled "fontname otf" and installed that instead.