🔄 Font Conversion
Convert between TTF, OTF, WOFF, WOFF2, Type 1 (PFB/PFA), and SVG formats with curve conversion and optimization.
The most comprehensive font library — 100% Pure Ruby, no Python, no C++, no C# dependencies.
Fontisan is the most comprehensive font processing library in pure Ruby, combining the capabilities of:
The key differentiator: Fontisan is 100% pure Ruby. No Python, no C++, no C# dependencies. Install and run anywhere Ruby runs.
| Feature | fonttools | lcdf-typetools | Font-Validator | Fontisan |
|---|---|---|---|---|
| Pure Ruby | ❌ | ❌ | ❌ | ✅ |
| Python-free | ❌ | ✅ | ✅ | ✅ |
| Font conversion | ✅ | ✅ | ❌ | ✅ |
| Validation | ❌ | ❌ | ✅ | ✅ |
| Bidirectional hints | ❌ | Partial | ❌ | ✅ |
| Variable fonts | ✅ | ❌ | ❌ | ✅ |
| Type 1 support | Partial | ✅ | ❌ | ✅ |
# Get font information
fontisan info font.ttf
# Convert fonts
fontisan convert input.ttf --to otf --output output.otf
# Validate fonts
fontisan validate font.ttf --profile google_fonts
# Work with collections
fontisan unpack fonts.ttc --output-dir ./extractedrequire 'fontisan'
# Load any font format
font = Fontisan::FontLoader.load('font.ttf')
# Get font information
info = Fontisan::Commands::InfoCommand.new(font: font).run
puts info.family_name
puts info.style
# Convert between formats
Fontisan::FontWriter.write(font, 'output.woff2')
# Validate a font
result = Fontisan::FontValidator.validate('font.otf', profile: :google_fonts)
puts result.passed?Coming from another tool? We have migration guides:
Fontisan is open source and available under the MIT License.