Reusing the otData machinery. See discussion at: https://github.com/behdad/fonttools/issues/178 https://github.com/behdad/fonttools/pull/180
105 lines
5.2 KiB
HTML
105 lines
5.2 KiB
HTML
<HTML>
|
|
<HEAD>
|
|
|
|
<TITLE>TTX Documentation</TITLE>
|
|
|
|
|
|
</HEAD>
|
|
<BODY bgcolor="#FFFFFF">
|
|
|
|
<H3>TTX -- From OpenType and TrueType to XML and Back</H3>
|
|
|
|
<A HREF="http://fonttools.sourceforge.net/">TTX</A> is a tool for manipulating TrueType and OpenType fonts. It is written in Python and has a BSD-style, open-source licence -- see LICENSE.txt. Among other things this means you can use it free of charge. It's hosted at <A HREF="http://sourceforge.net/">sourceforge.net</A>.
|
|
|
|
<P>
|
|
TTX can dump TrueType and OpenType fonts to an XML-based text format, which is also called TTX. TTX files have a .ttx file extension.
|
|
|
|
<H3>How to use TTX</H3>
|
|
|
|
The TTX application works can be used in two ways, depending on what platform you run it on:
|
|
|
|
<ul>
|
|
<li>As a command line tool (Windows/DOS, Unix, MacOSX)</li>
|
|
<li>By dropping files onto the application (Windows, MacOS)</li>
|
|
</ul>
|
|
|
|
<P>
|
|
TTX detects what kind of files it is fed: it will output a .ttx file when it sees a .ttf or .otf, and it will compile a .ttf or .otf when the input file is a .ttx file. By default, the output file is created in the same folder as the input file, and will have the same name as the input file but with a different extension. TTX will <I>never</I> overwrite existing files, but if necessary will append a unique number to the output filename (before the extension), eg.: "Arial#1.ttf".
|
|
|
|
<P>
|
|
When using TTX from the command line there are a bunch of extra options, these are explained in the help text, as displayed when typing "ttx -h" at the command prompt. These additional options include:
|
|
<ul>
|
|
<li>specifying the folder where the output files are created</li>
|
|
<li>specifying which tables to dump or which tables to exclude</li>
|
|
<li>merging partial .ttx files with existing .ttf or .otf files</li>
|
|
<li>listing brief table info isntead of dumping to .ttx</li>
|
|
<li>splitting tables to separate .ttx files</li>
|
|
<li>disabling TT instruction disassembly</li>
|
|
</ul>
|
|
|
|
<H3>The TTX file format</H3>
|
|
|
|
The following tables are currently supported:
|
|
<BLOCKQUOTE><TT>
|
|
<!-- begin table list -->
|
|
BASE, CBDT, CBLC, CFF, COLR, CPAL, DSIG, EBDT, EBLC, FFTM, GDEF, GMAP, GPKG, GPOS, GSUB, JSTF, LTSH, MATH, META, OS/2, SING, SVG, TSI0, TSI1, TSI2, TSI3, TSI5, TSIB, TSID, TSIJ, TSIP, TSIS, TSIV, VDMX, VORG, cmap, cvt, feat, fpgm, gasp, glyf, hdmx, head, hhea, hmtx, kern, loca, maxp, name, post, prep, sbix, vhea and vmtx
|
|
<!-- end table list -->
|
|
</TT></BLOCKQUOTE>
|
|
Other tables are dumped as hexadecimal data.
|
|
|
|
<P>
|
|
TrueType fonts use glyph indices (GlyphID's) to refer to glyphs in most places.
|
|
While this is fine in binary form, it is really hard to work with for
|
|
humans. Therefore we use names instead.
|
|
|
|
<P>The glyph names are either extracted from the 'CFF ' table or the 'post' table,
|
|
or are derived from a Unicode 'cmap' table. In the latter case the Adobe Glyph List
|
|
is used to calculate names based on Unicode values. If all of these mthods fail,
|
|
names are invented based on GlyphID (eg. "glyph00142").
|
|
|
|
<P>It is possible that different glyphs use the same name. If this happens,
|
|
we force the names to be unique by appending "#n" to the name (n being an
|
|
integer number). The original names are being kept, so this has no influence
|
|
on a "round tripped" font.
|
|
|
|
<P>Because the order in which glyphs are stored inside the TT font is
|
|
important, we maintain an ordered list of glyph names in the font.
|
|
|
|
|
|
<H3>Development and feedback</H3>
|
|
|
|
TTX/FontTools development is ongoing, but often goes in spurts. Feature requests and bug reports are always welcome. The best place for these is currently the fonttools-discussion mailing list at SourceForge. This list is both for discussion TTX from an end-user perspective as well as TTX/FontTools development. Subscription info can be found if you follow the "Mailing Lists" link at the <A HREF="http://sourceforge.net/projects/fonttools/">SourceForge project page</A>. You can also email me directly at <A HREF="mailto:just@letterror.com">just@letterror.com</A>.
|
|
|
|
<P>
|
|
Let me take this opportunity to mention that if you have special needs (eg. custom font monipulators, dufferent table formats, etc.): I am available for contracting.
|
|
|
|
<H3>Credits</H3>
|
|
|
|
Windows setup script: Adam Twardoch
|
|
<BR>Icon: Hannes Famira
|
|
|
|
<H3>Acknowledgements</H3>
|
|
|
|
(in alphabetical order)
|
|
Erik van Blokland, Petr van Blokland, Jelle Bosma, Vincent Connare,
|
|
Simon Daniels, Hannes Famira, Yannis Haralambous, Greg Hitchcock, John Hudson,
|
|
Jack Jansen, Tom Kacvinsky, Antoine Leca, Werner Lemberg, Tal Leming,
|
|
Peter Lofting, Dave Opstad, Laurence Penney, Read Roberts, Guido van Rossum, Andreas Seidel, Adam Twardoch.
|
|
|
|
<H3>Copyrights</H3>
|
|
|
|
<A HREF="http://fonttools.sourceforge.net/">FontTools/TTX</A>
|
|
<BR>1999-2003 Just van Rossum; LettError (just@letterror.com). See LICENSE.txt for the full license.
|
|
<P>
|
|
<A HREF="http://www.python.org/">Python</A>
|
|
<BR>Copyright (c) 2001-2003 Python Software Foundation. All Rights Reserved.
|
|
<BR>Copyright (c) 2000 BeOpen.com. All Rights Reserved.
|
|
<BR>Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.
|
|
<BR>Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved.
|
|
<P>
|
|
<A HREF="http://www.pfdubois.com/numpy/">Numeric Python (NumPy)</A>
|
|
<BR>Copyright (c) 1996. The Regents of the University of California. All rights reserved.
|
|
|
|
</BODY>
|
|
</HTML>
|