How to Batch Convert Font Files for Free
- Browser-based font converters (including this one) handle one file at a time — they're built for quick single-file conversions.
- For batch conversion of dozens or hundreds of fonts, the fonttools Python library is the standard free solution.
- A simple shell loop can convert an entire directory of TTF files to WOFF or WOFF2 in under a minute.
Table of Contents
The WildandFree Font Converter is designed for fast, one-at-a-time conversions — drop a file, get a file, move on. If you need to convert 5 fonts, that's 5 quick drops. If you need to convert 200 fonts, that's not the right tool for the job.
For batch conversion — converting a whole directory of fonts in one operation — the fonttools Python library handles this cleanly and for free. This guide covers both approaches.
Browser-Based Converter — Best for Single Files
The browser converter is the fastest path for one to five fonts:
- No install or setup
- Drop a file, pick a format, download the result
- Handles TTF ↔ OTF ↔ WOFF in any direction
- File never leaves your machine
For a small number of conversions, this is faster than installing Python and fonttools. Use it for spot conversions, one-off client files, or any situation where setup time would outweigh the benefit.
fonttools — Batch Convert an Entire Directory
fonttools is a free Python library used by font professionals for large-scale font processing. Install once:
pip install fonttools
Then convert an entire folder of TTF files to WOFF:
for f in fonts/*.ttf; do
python3 -m fonttools ttLib.makeStaticInstance "$f" --flavor woff -o "woff/$(basename ${f%.ttf}).woff"
done
Or the simpler approach using pyftsubset (also part of fonttools):
for f in fonts/*.ttf; do fonttools ttLib -o "woff/$(basename "$f" .ttf).woff" "$f" done
For WOFF2 batch conversion (requires the brotli package):
pip install fonttools brotli for f in fonts/*.ttf; do python3 -m fonttools ttLib.woff2 compress "$f" done
This processes every TTF in the fonts/ directory and outputs a WOFF2 file next to each source file.
Batch Font Conversion on Windows
On Windows, the loop syntax is slightly different. In PowerShell:
Get-ChildItem "C:onts*.ttf" | ForEach-Object {
python -m fonttools ttLib.woff2 compress $_.FullName
}
Or in Command Prompt:
for %f in (C:onts*.ttf) do python -m fonttools ttLib.woff2 compress "%f"
Install Python first from python.org (check "Add Python to PATH" during install), then pip install fonttools brotli in a Command Prompt or PowerShell window.
Choosing the Right Tool for Your Scale
A practical decision framework:
- 1–5 fonts: Browser converter. Drop, download, done. No setup time.
- 6–20 fonts: Either works. Browser converter is still manageable. fonttools starts to pay off if you've already installed it.
- 20+ fonts: fonttools. The loop setup takes 5 minutes; processing 50 fonts takes another 10 seconds.
- Recurring workflow: fonttools. Once the script exists, you run it again whenever you get new fonts.
For studios managing a large shared font library, the fonttools approach also produces consistent output — same compression settings, same naming conventions — which is harder to guarantee with manual one-at-a-time conversions.
Naming Output Files During Batch Conversion
A common batch conversion requirement is outputting to a separate folder with a consistent naming convention. Here's a pattern for macOS/Linux that outputs all conversions to an output/ subfolder:
mkdir -p output
for f in fonts/*.ttf; do
name=$(basename "$f" .ttf)
python3 -m fonttools ttLib.woff2 compress "$f" -o "output/${name}.woff2"
done
Adjust the extension and conversion command for WOFF or OTF output. The basename trick strips the directory path and original extension to build the output filename cleanly.
Quick Single-File Conversions — No Install
For one-off conversions, drop a TTF, OTF, or WOFF and get the output format in under a second. For batch jobs, follow the fonttools guide above.
Open Font ConverterFrequently Asked Questions
Is there a free online batch font converter?
Most online font converters handle one file at a time. For true batch conversion, fonttools (free Python library) is the standard solution — it processes entire directories in a single shell command.
How do I convert 100 TTF files to WOFF at once?
Install fonttools with `pip install fonttools`, then run a shell loop: `for f in fonts/*.ttf; do python3 -m fonttools ttLib.woff2 compress "$f"; done`. For WOFF (not WOFF2), adjust the fonttools command to use the woff flavor flag.
Does the browser font converter support batch conversion?
No — it converts one file at a time. For batches of more than a few fonts, fonttools is the better tool. The browser converter is fastest for quick single-file conversions with no setup.

