The otfcc
is a C library and utility used for parsing and writing OpenType font files.
- Read an OpenType font, (TrueType is supported as well)
- And dump its data into JSON.
- Or parse a dump of an OpenType font,
- And build an OpenType font according to it.
otfccdump [OPTIONS] input.[otf|ttf|ttc]
-h, --help : Display this help message and exit.
-v, --version : Display version information and exit.
-o <file> : Set output file path to <file>. When abasent
the dump will be written to STDOUT.
-n <n>, --ttc-index <n> : Use the <n>th subfont within the input font.
--pretty : Prettify the output JSON.
--ugly : Force uglify the output JSON.
--time : Time each substep.
--ignore-glyph-order : Do not export glyph order information.
--ignore-hints : Do not export hingint information.
--add-bom : Add BOM mark in the output. (This is default
on Windows when redirecting to another program.
Use --no-bom to turn it off.)
otfccbuild [OPTIONS] [input.json] -o output.[ttf|otf]
input.json : Path to input file. When absent the input will
be read from the STDIN.
-h, --help : Display this help message and exit.
-v, --version : Display version information and exit.
-o <file> : Set output file path to <file>.
--time : Time each substep.
--ignore-glyph-order : Ignore the glyph order information in the input.
--ignore-hints : Ignore the hinting information in the input.
--keep-average-char-width : Keep the OS/2.xAvgCharWidth value from the input
instead of stating the average width of glyphs.
Useful when creating a monospaced font.
--keep-modified-time : Keep the head.modified time in the json, instead
of using current time.
--short-post : Don't export glyph names in the result font. It
will reduce file size.
--dummy-DSIG : Include an empty DSIG table in the font. For
some Microsoft applications, a DSIG is required
to enable OpenType features.
--ship : Equalivent to the combination of these options:
* --ignore-glyph-order
* --short-post
* --dummy-dsig
otfcc
can be built on a number of platforms. It uses the premake build system.
It was developed and optimized for Clang/LLVM, therefore it is strongly recommended to compile with Clang/LLVM, but if that's not possible GCC is also supported, GCC version 5.1 or later being the preferred choice for performance.
On Windows building otfcc
is tested under the toolchains listed below. The default premake5 vs2015
will produce a Visual Studio solution using Clang-CL as its compiler.
-
GCC 5.1 included in
TDM-GCC
. Run the following from the command line:premake5 gmake cd build/gmake make
-
Visual C++ Building Tools (Mar 2016) with Clang/LLVM 3.8. Only Release build is tested. Run the following from the Visual C++ Command Prompt:
premake5 vs2015 msbuild build\vs\otfcc.sln /property:Configuration=Release
On Linux, Either Clang/LLVM or GCC can be used to build otfcc
.
- Install the latest Clang/LLVM or GCC if you do not have it already.
- Download and install premake5 for Linux and make it available in your path.
- Run the following from the command line:
premake5 gmake
cd build/gmake
make