FontForge -- An outline font editor that lets you create your own postscript, truetype, opentype, cid-keyed, multi-master, cff, svg and bitmap (bdf) fonts, or edit existing ones. Also lets you convert one format to another. FontForge has support for many macintosh font formats.
FontForge's user interface has been localized for: (English), Russian, Japanese, French, Italian, Spanish.
I have no one to do QA for me except users on the net, so this is essentially (and eternally) beta software. Expect to find bugs. Please let me know when you do.
See the dependencies section below for external libraries/programs you may want to add to your system to enhance FontForge's capabilities.
You can download the
source tree in one .tgz file:
Version 9-August-2005
Or you can go to the
cvs
tree and get the most recent version. (This may be delayed by 24 hours)
To download the entire source package (including documentation), create a new directory, cd into it and use anonymous cvs (with no password):
$ cvs -d:pserver:anonymous@cvs1.sourceforge.net:/cvsroot/fontforge login CVS password: $ cvs -d:pserver:anonymous@cvs1.sourceforge.net:/cvsroot/fontforge checkout fontforge
Or see sourceforge's description for more information (their information is out of date, the correct server is cvs1.sf.net not cvs.sf.net)
If you want to do autotracing around character images you should also download either
If you want to edit CID keyed fonts you need these character set descriptions. (These were last updated 22-Dec-2004)
You might want a copy of this extension to FontForge's built in character set encodings.
With the appropriate libraries, FontForge can import png, tiff, and gif images to act as character backgrounds for tracing purposes (FontForge can import bmp and xbm formats without external libraries). With libxml2 FontForge can read SVG fonts. With the freetype library FontForge will do a better job making bitmap characters for you. None is required for the proper compilation/execution of FontForge, if the libraries are not present they will not be used. If your machine doesn't have them and you want them they are available from:
Under Mac OS/X these libraries are available from the fink project.
--enable-extra-encodings
, FontForge requires Shift-JIS.
Some of FontForge's commands depend on your compiling
freetype with the byte code interpreter enabled. This is disabled by default
because it infringes on certain
patents granted to
Apple. If you have a license from Apple then you may enable the interpreter
by setting the appropriate macro in .../include/freetype/config/ftoption.h
before you build the library (see the README.UNX file on the top level of
the freetype distribution).
FontForge needs to have the freetype source directories available when it is built (there are some include files there which it depends on) |
libpng | libtiff | libungif | libjpeg | libxml2 | libuninameslist | freetype | |
i386 linux builds | 3.1.2.2 =1.2.2 |
3.5 =20011128 |
4.1.0 =4 |
62.0.0 =62 (6b) |
2.5.4 =2.5.4 |
0.0.1 | 6.3.3 =2.1.9 |
solaris builds | 2 =1.0.8 |
3 =19970127 |
|
6 =62 (6b) |
|
|
|
Mac OS/X builds | (static) |
|
(static) | (static) | 2.5.0 =2.5.0 |
|
6.3.3 =2.1.4 |
Normally FontForge depends on the X11 windowing system, but if you are just interested in the scripting engine (with no user interface), it may be built on systems without X (the configure script should figure this out).
FontForge has been ported to the following systems (at some point in its life)
You might also want to pull down some unicode bitmap fonts that fontforge uses
All the documentation files in this directory bundled up into one
tgz file 9-August-2005.
If you do the following then FontForge will find the docs for you when you
press F1 (ie. FontForge it will look in /usr/local/share/doc/fontforge before
it looks on the web):
$ mkdir -p /usr/local/share/doc/fontforge $ cd /usr/local/share/doc/fontforge $ gunzip fontforge_htdocs-*.tgz $ tar xf fontforge_htdocs-*.tar $ rm fontforge_htdocs-*.tar
Or you can just browse the docs online. (Always current)
$ gunzip fontforge_full-*.tgz $ tar xf fontforge-full*.tar $ cd fontforge $ configure $ make $ su # make install
FontForge now compiles dynamic libraries by default. If you would rather
not deal with dynamic libraries (or if the compiler generates internal compiler
errors when asked to generate PIC code, as Mac OS/X did in older versions)
then use
$ configure.static
instead and things should be configured for static libraries.
If you want access to type3 editing
capabilities
$ configure --with-multilayer
(this has the disadvantage of using even more memory that FontForge
normally does, so it is off by default)
The executable tarball contains a shell script doinstall
$ gunzip fontforge-*.tgz $ tar xf fontforge-*.tar $ cd fontforge $ su # doinstall
See above on how to install using the makefile.
$ fontforge font.pfa font2.pfb font3.sfd font4.ttf font5.otf font6.gsf
font7.bdf
will start fontforge looking at the fonts you specify on the command line.
It can read either pfb or pfa fonts, and some ps fonts (type 0 fonts based
on a type 1 dictionary) as well as truetype fonts, non-CID open type fonts
and bitmap fonts.
$ fontforge -new
will cause fontforge to create a new font (in iso-8859-1 encoding)
$ fontforge
will open up a file picker dialog and allow you to browse till you've found
a font file (or have created a new one). $ fontforge -script script.pe
fonts...
This will invoke fontforge in a non-interactive mode, and have it run the
named script. Any further arguments on the command line will be passed as
arguments to the script and processed (or not) by it.
Copyright © 2000,2001,2002,2003,2004,2005 by George WilliamsRedistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
This is essentially the "revised BSD license".
FontForge is by no means complete. And probably doesn't work very well. Be prepared to save frequently and always work on a copy of the original.
There are currently three mailing lists established for FontForge. You may subscribe to any of them on sourceforge: http://sourceforge.net/mail/?group_id=103338. You may not post to a list until you have subscribed (sorry about that, but we were getting too much spam).
Caveat: Posting to these mailing lists exposes your email address.
This list includes the gross bugs that I'm aware of but don't know how to fix. Minor bugs get reported to me and are generally fixed within a week and rarely appear on this list.
I'm sure you'll find some. If you can isolate it and come up with a reproducible minimal case, that would be great. The executable has symbols in it so if you run it in gdb you should be able to get a stack trace... Do what you can. Please post bugs to:
fontforge-devel@lists.sourceforge.net
U+0066 + U+0069 => U+FB01 'liga'
The sample text in File->Print comes from many sources.
The following people have helped debug fontforge. Many thanks! (actually the list should be far longer than this)
I owe David Turner (and everyone else) of FreeType a debt for providing an API which allows me to debug truetype instructions. Also he came up with the name "FontForge".
FontForge was inspired by AltSys's Fontographer now placed in graceful retirement by MacroMedia.
My father inspired a general interest in typography (though he is interested in renaissance printing techniques rather than computers).
And finally I owe thanks to Linda Dozier, David Cole and everyone at NaviSoft which company has given me the free time to write this program.
If you know of a tool you think should be on this list, please let me know. I did my research a couple of years ago and expect it is out of date.