PHP class to convert a WOFF font file into a TTF/OTF font file
Nowadays, web project are using fonts provided in the WOFF/WOFF2 file format. Sometimes the TTF version also exists but is increasingly no longer the case. However the TTF file format can still be useful, for example with PDF tools.
- Import webfont in WOFF (Web Open Font Format) file format 1.0 (W3C specifications)
- Export font data in TTF (TrueType Font) file format (Apple reference, Microsoft specifications)
- Full PHP library, only one file containing the static utility class is needed
PHP version 7.0 or higher
This software is distributed under the LGPL 2.1 license. Please read LICENSE for information on the software availability and distribution.
This library is available on Packagist, and installation via Composer is the simplest way to add it into your project.
Just add the package dependency to your composer.json
file:
composer require teicee/woff-converter 1.x-dev
Make sure that the autoload file from Composer is loaded.
// somewhere early in your project's loading, require the Composer autoloader
// see: http://getcomposer.org/doc/00-intro.md
require 'vendor/autoload.php';
Alternatively, if you're not using Composer, you can
download WoffConverter as a zip file,
then copy the src/Woff.php
file into one of the include_path
directories specified in your PHP configuration.
Or you can also download only the PHP class file, directly from the project repository:
curl https://raw.githubusercontent.com/teicee/php-woff-converter/main/src/Woff.php
Then you have to load the class file manually in your code:
<?php
require 'path/to/src/Woff.php';
Just pass the path your WOFF file and the corresponding TTF file will be generated:
use TIC\WoffConverter\Woff;
// Convert a WOFF file in TTF...
Woff::toTTF("path/to/fonts/foobar.woff");
Note: You can specify the output TTF file in the 2nd optional argument.
By default it's derived from the input by replacing the extension .woff
by .ttf
.
No settings, just a public boolean property if you need debug informations:
// Enable debug on stdout
Woff::$debug = true;
With this debug option, intermediate data will be displayed on stdout.
- Implement a decoder for WOFF2 file format (with Brotli uncompress)