fonttools convert ttf to woff2

6.2k Views Asked by At

Currenly, I'm using fonttools(https://github.com/fonttools/fonttools) to convert font file ttf to woff2 by ttx command with 2 steps

  • convert ttf to ttx
  • then convert ttx to woff2

But it's too slow and ttx file to big, is there any way to convert ttf to woff2 directly by using fonttools to improve performance?

4

There are 4 best solutions below

1
On BEST ANSWER

With fonttools installed in your Python (virtualenv, pipenv, etc):

$ python
>>> from fontTools.ttLib import TTFont
>>> f = TTFont('path/to/your/file.otf')
>>> f.flavor='woff2'
>>> f.save('path/to/your/file.woff2')

NOTE: you might need to install other fontTools dependencies ('brotli', others) to allow saving with flavor=woff2 to work correctly.

0
On

There's Google's woff2 CLI, so you can do this in command line instead of manually writing some scripts.

1
On
pip install --user --upgrade fonttools[woff]
python3
>>> from fontTools.ttLib.woff2 import compress
>>> compress('filename.otf','filename.woff2')
  • This will [only] accept .otf and .ttf
  • It produces smaller files than other techniques (ie: woff2-tools)

https://fonttools.readthedocs.io/en/latest/ttLib/woff2.html?highlight=ttLib.woff2%3A#fontTools.ttLib.woff2.compress

1
On

If you install fonttools with the right dependencies, you can also this from the command-line:

./fonttools ttLib Roboto-Regular.ttf --flavor woff2 Roboto-Regular.woff2