Skip to content

Migrate from Font-Validator

This guide helps you migrate from Microsoft's Font-Validator (C#) to Fontisan.

Overview

Font-Validator is Microsoft's C# tool for font validation. Fontisan provides equivalent validation with additional features, all in pure Ruby.

Profile Equivalents

Font-ValidatorFontisan
Auto modefontisan validate -t indexability
Full modefontisan validate -t production
Web modefontisan validate -t web
Customfontisan validate -t spec_compliance

Validation Profiles

indexability (Fast)

Equivalent to Font-Validator Auto mode:

bash
fontisan validate font.ttf -t indexability

# Fast validation for font discovery
# 8 checks, metadata-only

production (Full)

Equivalent to Font-Validator Full mode:

bash
fontisan validate font.ttf -t production

# Comprehensive quality checks
# 37 checks, OpenType spec compliance
# This is the default profile

web

Equivalent to Font-Validator Web mode:

bash
fontisan validate font.ttf -t web

# Web embedding readiness
# 18 checks for web deployment

Command Equivalents

Basic Validation

Font-Validator:

bash
FontValidator.exe font.ttf

Fontisan:

bash
fontisan validate font.ttf

With Profile

Font-Validator:

bash
FontValidator.exe -Profile Auto font.ttf
FontValidator.exe -Profile Full font.ttf
FontValidator.exe -Profile Web font.ttf

Fontisan:

bash
fontisan validate font.ttf -t indexability
fontisan validate font.ttf -t production
fontisan validate font.ttf -t web

Output Format

Font-Validator:

bash
FontValidator.exe -Output report.xml font.ttf

Fontisan:

bash
fontisan validate font.ttf --format yaml
fontisan validate font.ttf --format json

Output Comparison

Font-Validator Output

=== Font Validation Report ===
File: font.ttf
Overall: PASS

Checks: 50
Passed: 50
Failed: 0

Fontisan Output

Font: font.ttf
Status: VALID

Summary:
  Checks performed: 37
  Passed: 37
  Failed: 0

Errors: 0
Warnings: 0

Validation Helpers

Fontisan includes 56 validation helpers:

CategoryHelpers
Table12
Name8
Head6
Metrics10
Glyph8
CMAP6
Layout6

See Validation Helpers for details.

Additional Features

Fontisan provides features not available in Font-Validator:

Font Conversion

bash
# Not available in Font-Validator
fontisan convert font.ttf --to otf --output font.otf
fontisan convert font.ttf --to woff2 --output font.woff2

Font Subsetting

bash
# Not available in Font-Validator
fontisan subset font.ttf --chars "ABC" --output subset.ttf

Collection Support

bash
# Limited in Font-Validator
fontisan ls family.ttc
fontisan unpack family.ttc --output-dir ./extracted

Variable Font Support

bash
# Limited in Font-Validator
fontisan info variable.ttf
fontisan instance variable.ttf --wght 700 --output bold.ttf

Feature Comparison

FeatureFont-ValidatorFontisan
Pure Ruby❌ (C#)
.NET required
Validation
Conversion
Subsetting
CollectionsLimited
Variable fontsLimited
Type 1 support
Custom validators

Migration Example

CI/CD Pipeline

Before (Font-Validator):

yaml
# Requires .NET runtime
- run: FontValidator.exe -Profile Full fonts/*.ttf

After (Fontisan):

yaml
# Pure Ruby, no runtime dependencies
- run: fontisan validate fonts/*.ttf -t production

Script

Before:

bash
# Windows only
FontValidator.exe -Profile Full font.ttf
if %ERRORLEVEL% neq 0 (
  echo Validation failed
)

After:

bash
# Cross-platform
fontisan validate font.ttf
if [ $? -ne 0 ]; then
  echo "Validation failed"
fi

Custom Validators

Fontisan allows custom validation rules:

ruby
class MyValidator < Fontisan::Validators::Validator
  def define_checks
    check_table :custom_check, 'name', severity: :error do |table|
      table.family_name_present?
    end
  end
end

See Custom Validators for details.

Advantages of Fontisan

  1. Pure Ruby — No .NET runtime required
  2. Cross-platform — Works on Linux, macOS, Windows
  3. More features — Conversion, subsetting, collections
  4. Custom validators — Extensible validation
  5. Variable fonts — Full support
  6. Type 1 — Legacy format support

Getting Help

Fontisan is a [Ribose](https://open.ribose.com/) project