updated documentation, split user and developer doco
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@323 4cde692c-a291-49d1-8350-778aa11640f8
This commit is contained in:
parent
da15a425c4
commit
15174d04ea
@ -1,108 +1,53 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
|
||||
<TITLE>TTX/FontTools</TITLE>
|
||||
<TITLE>TTX Documentation</TITLE>
|
||||
|
||||
|
||||
</HEAD>
|
||||
<BODY bgcolor="#FFFFFF">
|
||||
|
||||
<H1>TTX/FontTools</H1>
|
||||
<H3>TTX -- From OpenType and TrueType to XML and Back</H3>
|
||||
|
||||
<A HREF="http://fonttools.sourceforge.net/">TTX/FontTools</A> is a
|
||||
suite of tools and libraries for manipulating fonts. It is written in
|
||||
Python and has a BSD-style, open-source licence -- see LICENSE.txt.
|
||||
It's hosted at <A HREF="http://sourceforge.net/">sourceforge.net</A>.
|
||||
<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>
|
||||
It currently reads and writes TrueType font files, reads PostScript Type 1 fonts
|
||||
and more. It contains two command line programs to convert TrueType fonts to an
|
||||
XML based format (called TTX) and back.
|
||||
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>Scope</H3>
|
||||
<H3>How to use TTX</H3>
|
||||
|
||||
TTX/FontTools' functionality is aimed towards font developers and font tool
|
||||
developers. It can of course be used to just access fonts (outlines,
|
||||
metrics, etc.) but it is not optimized for that. It will be further
|
||||
developed so it can be the core of any font editor. And that's exactly
|
||||
what it will be for our upcoming major rewrite of <A
|
||||
HREF="http://www.robofog.com/">RoboFog</A>, our (commercial)
|
||||
PythonPowered font editor for MacOS.
|
||||
The TTX application works can be used in two ways, depending on what platform you run it on:
|
||||
|
||||
<H3>Installation</H3>
|
||||
<!-- begin table list -->
|
||||
<!-- end table list -->
|
||||
|
||||
You need the following software to use FontTools:
|
||||
<ul>
|
||||
<li>As a command line tool (Windows/DOS, Unix, MacOSX)</li>
|
||||
<li>By dropping files onto the application (Windows, MacOS)</li>
|
||||
</ul>
|
||||
|
||||
<UL>
|
||||
<LI>
|
||||
<B>Python</B>. The fresh versions as well as older versions (You need 2.0 or higher) can be obtained here:
|
||||
<A HREF="http://www.python.org/download/">http://www.python.org/download/</A>
|
||||
or here:
|
||||
<A HREF="http://sourceforge.net/projects/python/">http://sourceforge.net/projects/python/</A>
|
||||
|
||||
<P>Windows: grab the Windows installer, run the full install.
|
||||
<BR>Un*x: follow the build instructions.
|
||||
<BR>MacOS: grab the installer, run "Easy Install"
|
||||
<P>
|
||||
<LI>
|
||||
The <B>Numeric Python</B> extension (you don't need this under MacOS, since it's
|
||||
included in the MacPython installer). Get a fresh version from the download page,
|
||||
linked from here:
|
||||
<A HREF="http://sourceforge.net/projects/numpy/">http://sourceforge.net/projects/numpy/</A>
|
||||
<P>Windows: grab the "Numeric-*.exe" archive, it's an installer. Make sure the
|
||||
Python version in the archive name (eg. "2.1") matches the Python version you have.
|
||||
<BR>Linux/Un*x: get a source archive and run this command from the unpacked directory:
|
||||
<BR><TT>python setup.py install</TT>
|
||||
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 neccesary will append a unique number to the output filename (before the extension), eg.: "Arial#1.ttf".
|
||||
|
||||
<P>
|
||||
<LI>
|
||||
<B>PyXML</B>, a set of XML tools:
|
||||
<A HREF="http://sourceforge.net/projects/pyxml/">http://sourceforge.net/projects/pyxml/</A>
|
||||
<BR>Installation should be very similar to installing Numeric Python, see above.
|
||||
<BR><I>Note:</I> some Python distributions already contain the neccesary XML support.
|
||||
If "import xml.parsers.expat" works at the Python interactive prompt, you don't need to
|
||||
install PyXML.
|
||||
|
||||
</UL>
|
||||
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>
|
||||
|
||||
Now run the "setup.py" script from the FontTools archive. This will install
|
||||
all the modules in the right places, as well as tries to compile the one (optional)
|
||||
C extension contained in FontTools. (XXX: need precompiled Mac and Windows binaries,
|
||||
*or* a way to skip compilation when there's no compiler available.)
|
||||
The following tables are currently supported:
|
||||
|
||||
<P>Additional Mac instructions:
|
||||
De-binhex "TTX.rsrc.hqx" by dropping it onto StuffIt expander. (Or use your
|
||||
own preferred method)
|
||||
The "TTX.py" script included in this archive is the Mac-only main program:
|
||||
Drop it onto the "BuildApplet" app inside the Python folder; this will
|
||||
produce the TTX applet.
|
||||
|
||||
|
||||
<H3>User documentation</H3>
|
||||
|
||||
<P>For Unix and DOS there are three command line programs:
|
||||
<UL>
|
||||
<LI>ttdump -- dumps a TrueType (or OpenType) font file to TTX format.
|
||||
<LI>ttcompile -- compiles a TTX file back into a TTF (or OTF) file.
|
||||
<LI>ttlist -- lists minimal info about each table in a font.
|
||||
</UL>
|
||||
They can all work with multiple input files. There are some extra
|
||||
options which are explained by the 'usage' text; use the -h option to
|
||||
display it. The setup.py script installs them as global tools, the
|
||||
source is in the Tools directory.
|
||||
|
||||
<P>For MacOS there's a application called TTX. If you drop a TrueType
|
||||
file onto it, it will convert it to XML. If you drop an XML file onto
|
||||
it, it will convert it back to TrueType. Please read the additional
|
||||
README file in the Mac subdirectory, since it behaves quite differently
|
||||
than the command line programs described below.
|
||||
|
||||
<P>Adam Twardoch contributed a Windows registry script (ttx_shellext_win32.py) which
|
||||
makes the two above tools available under the Right Mouse Button. I haven't tested
|
||||
these myself, but I'm very interested in hearing about the results!
|
||||
|
||||
<H3>A note about glyph names and TrueType GlyphID's</H3>
|
||||
<P>
|
||||
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.
|
||||
@ -120,50 +65,13 @@ 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>Feedback</H3>
|
||||
|
||||
Please join the fonttools-discussion mailing list at SourceForge. 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>.
|
||||
<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>
|
||||
If you want to follow the development of FontTools closely, or would like to
|
||||
contribute, you can also subscribe to the fonttools-checkins mailing list.
|
||||
|
||||
<H3>Anonymous CVS-access</H3>
|
||||
|
||||
The FontTools sources are also accessible through CVS, see the
|
||||
the <A HREF="http://sourceforge.net/projects/fonttools/">SourceForge project
|
||||
page</A>. Let me know if you'd like to become a co-developer.
|
||||
|
||||
<H3>Developer documentation</H3>
|
||||
|
||||
Sorry, documentation beyond doc strings in the source code is still on my to-do list...
|
||||
Below follows a brief overview of what's there.
|
||||
|
||||
<P>
|
||||
<H3>The library</H3>
|
||||
|
||||
Cross-platform
|
||||
<UL>
|
||||
<LI>fontTools.t1Lib -- Provides a Type 1 font reader. Writing is a planned feature.
|
||||
<LI>fontTools.ttLib -- Extensive TrueType tools. Reads and writes. This is the flagship
|
||||
of FontTools, it's by far the most mature component. Contains a completely modular
|
||||
TTF table converter architecture. See ttLib/tables/table_API_readme.txt.
|
||||
<LI>fontTools.afmLib -- And AFM file reader/writer.
|
||||
<LI>fontTools.cffLib -- Reads CFF fonts. Writing is a planned feature.
|
||||
<LI>fontTools.unicode -- A simple (but large) module that translates
|
||||
Unicode values to their descriptive names. Still Unicode 2.0.
|
||||
<LI>fontTools.agl -- Interface to the Adobe Glyph List: maps unicode values
|
||||
to glyph names and back.
|
||||
</UL>
|
||||
|
||||
Mac-specific
|
||||
<UL>
|
||||
<LI>fontTools.fondLib -- A reader/writer class for Mac FOND resources.
|
||||
<LI>fontTools.nfntLib -- Reads Mac NFNT bitmap font resources.
|
||||
</UL>
|
||||
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>Thank-you's</H3>
|
||||
|
||||
|
130
Doc/install.txt
Normal file
130
Doc/install.txt
Normal file
@ -0,0 +1,130 @@
|
||||
TTX/FontTools 2.0b1
|
||||
|
||||
TTX/FontTools is a suite of tools for manipulating fonts. It is written in
|
||||
Python and has a BSD-style, open-source licence -- see LICENSE.txt.
|
||||
It's hosted at http://sourceforge.net/.
|
||||
|
||||
The flagship is TTX, a tool to convert OpenType and TrueType font files to
|
||||
an XML-based format (also called TTX), and back. This lets you edit TTF or
|
||||
OTF files with any text editor.
|
||||
|
||||
The FontTools library currently reads and writes TrueType font files, reads
|
||||
PostScript Type 1 fonts and more.
|
||||
|
||||
|
||||
Scope
|
||||
|
||||
TTX/FontTools' functionality is aimed towards font developers and font tool
|
||||
developers. It can of course be used to just access fonts (outlines,
|
||||
metrics, etc.) but it is not optimized for that. It will be further
|
||||
developed so it can be the core of any font editor. And that's exactly
|
||||
what it will be for our upcoming major rewrite of RoboFog, our (commercial)
|
||||
PythonPowered font editor for MacOS.
|
||||
|
||||
|
||||
Installation
|
||||
|
||||
For Windows and MacOS there are easy-to-use TTX installers. The rest if this
|
||||
document is meant for people who want to use TTX/FontTools from the source.
|
||||
|
||||
You need the following software:
|
||||
|
||||
Python
|
||||
The fresh versions as well as older versions (You need 2.0 or higher)
|
||||
can be downloaded from
|
||||
http://www.python.org/download/
|
||||
or here
|
||||
http://sourceforge.net/projects/python/
|
||||
|
||||
Windows: grab the Windows installer, run the full install.
|
||||
Un*x: follow the build instructions.
|
||||
MacOS: grab the installer, run "Easy Install"
|
||||
|
||||
The Numeric Python extension
|
||||
Get a fresh version from the download page, linked from here:
|
||||
http://sourceforge.net/projects/numpy/
|
||||
Windows: grab the "Numeric-*.exe" archive, it's an installer. Make sure
|
||||
the Python version in the archive name (eg. "2.2") matches the Python
|
||||
version you have.
|
||||
Linux, other Unices including MacOSX: get a source archive and run this
|
||||
command from the unpacked directory:
|
||||
python setup.py install
|
||||
|
||||
PyXML
|
||||
Similar to the Numeric Python instructions, get the appropriate archive
|
||||
or installer from
|
||||
http://sourceforge.net/projects/pyxml/
|
||||
Installation is also similar to installing Numeric Python, see above.
|
||||
Note: some Python distributions already contain the neccesary XML support.
|
||||
If "import xml.parsers.expat" works at the Python interactive prompt, you
|
||||
don't need to install PyXML.
|
||||
|
||||
Now run the "setup.py" script from the FontTools archive. This will install
|
||||
all the modules in the right places, as well as tries to compile the one
|
||||
(optional) C extension contained in FontTools. On Unix it also installs the
|
||||
"ttx" command line tool. This tool can also be used on Windows, but might
|
||||
need some fiddling.
|
||||
|
||||
For instructions how to build a standalone Windows installer, see
|
||||
Windows/README.TXT. Thanks a LOT to Adam Twardoch for this essential
|
||||
contribution.
|
||||
|
||||
For TTX usage instructions, see the file "documentation.html".
|
||||
|
||||
|
||||
Feedback
|
||||
|
||||
Please join the fonttools-discussion mailing list at SourceForge. Subscription
|
||||
info can be found if you follow the "Mailing Lists" link at the SourceForge
|
||||
project page:
|
||||
http://sourceforge.net/projects/fonttools/
|
||||
You can also email me directly at just@letterror.com.
|
||||
|
||||
If you want to follow the development of FontTools closely, or would like to
|
||||
contribute, you can also subscribe to the fonttools-checkins mailing list.
|
||||
|
||||
|
||||
Anonymous CVS-access
|
||||
|
||||
The FontTools sources are also accessible through CVS, see:
|
||||
http://sourceforge.net/projects/fonttools/
|
||||
Let me know if you'd like to become a co-developer.
|
||||
|
||||
|
||||
Developer documentation
|
||||
|
||||
Sorry, documentation beyond doc strings in the source code is still on my to-do list...
|
||||
Below follows a brief overview of what's there.
|
||||
|
||||
|
||||
The library
|
||||
|
||||
Cross-platform
|
||||
fontTools.t1Lib -- Provides a Type 1 font reader. Writing is a planned feature.
|
||||
fontTools.ttLib -- Extensive TrueType tools. Reads and writes. This is the flagship
|
||||
of FontTools, it's by far the most mature component. Contains a completely modular
|
||||
TTF table converter architecture. See ttLib/tables/table_API_readme.txt.
|
||||
fontTools.afmLib -- And AFM file reader/writer.
|
||||
fontTools.cffLib -- Reads CFF fonts. Writing is a planned feature.
|
||||
fontTools.unicode -- A simple (but large) module that translates
|
||||
Unicode values to their descriptive names. Still Unicode 2.0.
|
||||
fontTools.agl -- Interface to the Adobe Glyph List: maps unicode values
|
||||
to glyph names and back.
|
||||
|
||||
Mac-specific
|
||||
fontTools.fondLib -- A reader/writer class for Mac FOND resources.
|
||||
fontTools.nfntLib -- Reads Mac NFNT bitmap font resources.
|
||||
|
||||
|
||||
Thank-you's
|
||||
|
||||
(in alphabetical order)
|
||||
Erik van Blokland, Petr van Blokland, Jelle Bosma, Vincent Connare,
|
||||
Simon Daniels, Hannes Famira, Greg Hitchcock, John Hudson, Jack Jansen,
|
||||
Antoine Leca, Werner Lemberg, Peter Lofting, Dave Opstad, Laurence Penney,
|
||||
Guido van Rossum, Adam Twardoch.
|
||||
|
||||
Copyrights
|
||||
|
||||
FontTools/TTX -- 1999-2002 Just van Rossum; Letterror (just@letterror.com)
|
||||
See LICENCE.txt for the full license.
|
13
README.txt
13
README.txt
@ -1,12 +1,13 @@
|
||||
See the file "index.html" in the "Doc" subdirectory for installation,
|
||||
usage and developer instructions.
|
||||
See the file "documentation.html" in the "Doc" subdirectory for TTX
|
||||
usage instructions and information about the TTX file format.
|
||||
|
||||
Quick start: run
|
||||
python setup.py install
|
||||
from the command line.
|
||||
See the file "install.txt" in the "Doc" subdirectory for instructions
|
||||
how to build and install TTX/FontTools from the sources.
|
||||
|
||||
Quick start: run python setup.py install from the command line.
|
||||
|
||||
See the file "LICENSE.txt" for licensing info.
|
||||
|
||||
Good luck!
|
||||
Have fun!
|
||||
|
||||
Just van Rossum <just@letterror.com>
|
||||
|
Loading…
x
Reference in New Issue
Block a user