TTF2PT1 project is a modification of Andrew Weeks TTF2PFA True Type to Postscript Type 3 converter. Which will convert Most True Type Fonts to an Adobe Type 1 .pfa file. And also the other font formats supported by the FreeType library to an Adobe Type 1 .pfa file. And the BDF fonts to an Adobe Type 1 .pfa file.
Yet another use is as a hinting engine: feed it an unhinted or poorly hinted Adobe Type 1 font through the FreeType library and get it back with freshly generated hints. If you want .pfb files, don't despair: they can be produced too. The files produced by default are in human readable form, which further needs to be encoded with the t1utilities, to work with most software requiring type 1 fonts. But for the lazy people ttf2pt1 includes a built-in portion of t1utilities as well.
After installing GIMP, I was dissapointed that all the fonts kept appearing blocky and jaggered (I hadn't set up X properly)
Fortunately X11 can use Adobe Type 1 fonts (both .pfb and .pfa). There are a large amount of Type 1 fonts available on the Net, but never the font you want, which is always in another format... It seems that every man and his dog have True Type (.ttf) Fonts but very few have Type 1. So I went looking for a converter. I searched the Web, I searched Deja-News. But every hit pointed to a commercial peice of software (for Mac or Windows).
I did find a program called ttf2pfa (by Andrew Weeks) which will convert a True Type Font to an Adobe Type 3 font, but X doesn't like type 3 fonts. So I continued searching for either ttf to pfa or type 3 to type 1.
I spoke to Andrew Weeks and asked if he was writing a program to produce type 1 fonts. Andrew pointed me to the type 1 specification and the True Type specification, and I started learning about the Type 1 fonts.
Unfortunately the Type 1 specification was full of references to the Postscript Language Reference Manual, which was only available in book format. The chapter on creating the Type 1 outline was full of references: rlineto behaves the same as the rlineto postscript command or
dx1 dy1 dx2 dy2 dx3 dy3 rrcurveto
behaves the same as
dx1 dy1 (dx1+dx2)(dy1+dy2) (dx1+dx2+dx3) (dy1+dy2+dy3) rcurveto
I needed more help.
Just browsing around News one day I noticed a signature which said: * NeXTSTEP, IRIX, Linux, BeOS & PostScript Guy So I asked Frank M. Siegert (owner of the signature) about converting type 3 fonts to type 1, then swapped a number of emails regarding the type 1 commands compared with the type 3 commands that ttf2pfa produced. And Eventually I got a valid type 1 font.
ttf2pt1 [-< opts >] [-l language | -L file] < ttf-file > [< fontname >]
ttf2pt1 [-< opts >] [-l language | -L file] < ttf-file > -
ttf2pt1 [-< opts >] [-l language | -L file] < ttf-file > - | t1asm > < pfa-file >
-a - include all glyphs, even those not in the encoding table
-b - produce a compressed .pfb file
-d dbg_suboptions - debugging options, run ttf2pt1 -d? for help
-e - produce a fully encoded .pfa file
-F - force use of Unicode encoding even if other MS encoding detected
-G suboptions - control the file generation, run ttf2pt1 -G? for help
-l language - convert Unicode to specified language, run ttf2pt1 -l? for list
-L file - convert Unicode according to encoding description file
-m < type >=< value > - set maximal limit of given type to value, types:
h - maximal hint stack depth in the PostScript interpreter
-O suboptions - control outline processing, run ttf2pt1 -O? for help
-p name - use specific front-end parser, run ttf2pt1 -p? for list
-u id - use this UniqueID, -u A means autogeneration
-v size - scale the font to make uppercase letters >size/1000 high
-V - print ttf2pt1 version number
-W number - set the level of permitted warnings (0 - disable)
Obsolete options (will be removed in future releases):
-A - write the .afm file to STDOUT instead of the font, now -GA
-f - don't try to guess the value of the ForceBold hint, now -Ob
-h - disable autogeneration of hints, now -Oh
-H - disable hint substitution, now -Ou
-o - disable outline optimization, now -Oo
-s - disable outline smoothing, now -Os
-t - disable auto-scaling to 1000x1000 standard matrix, now -Ot
-w - correct the glyph widths (use only for buggy fonts), now -OW
With no < fontname >, write to < ttf-file > with suffix replaced.
The last '-' means 'use STDOUT'.
What's New in This Release:
· Improved the auto-vectoring (-OV) alrogithm.
· Allow use of any encoding table of format 4 in the ttf parser.
· Take the first available format 4 encoding table if no known table is found in the ttf parser.
· The ttf parser lists the available encodings if no supported encoding table is found. This can be used to list the encodings in any font by specifying a bogus explicit PID/EID, such as with option -l plane+pid=50,eid=50.
· Fix to build all the features on Windows MS C++, by Tomoo Amano.
· Fix for a null pointer in the encodings, bad inner loop variable.
· Unified the parsing of font name strings and improved the checks against invalid characters.