360 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			360 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
#
 | 
						|
# Copyright 2008 Department of Mathematical Sciences, New Mexico State University
 | 
						|
#
 | 
						|
# Permission is hereby granted, free of charge, to any person obtaining a
 | 
						|
# copy of this software and associated documentation files (the "Software"),
 | 
						|
# to deal in the Software without restriction, including without limitation
 | 
						|
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
 | 
						|
# and/or sell copies of the Software, and to permit persons to whom the
 | 
						|
# Software is furnished to do so, subject to the following conditions:
 | 
						|
#
 | 
						|
# The above copyright notice and this permission notice shall be included in
 | 
						|
# all copies or substantial portions of the Software.
 | 
						|
#
 | 
						|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
						|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
						|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
 | 
						|
# DEPARTMENT OF MATHEMATICAL SCIENCES OR NEW MEXICO STATE UNIVERSITY BE
 | 
						|
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
 | 
						|
# CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
 | 
						|
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 | 
						|
#
 | 
						|
 | 
						|
This is version 3.1 of a program to convert OpenType fonts to BDF fonts using
 | 
						|
the FreeType 2 renderer (http://www.freetype.org).
 | 
						|
 | 
						|
BDF fonts can be edited using "gbdfed" which is available from:
 | 
						|
 | 
						|
  http://www.math.nmsu.edu/~mleisher/Software/gbdfed.html
 | 
						|
 | 
						|
COMPILING otf2bdf
 | 
						|
-----------------
 | 
						|
 | 
						|
If your system does not come with Freetype 2.1.5 or greater, pick up a
 | 
						|
Freetype2 distribution (>= 2.1.5) from http://www.freetype.org build and
 | 
						|
install it.
 | 
						|
 | 
						|
Then compile otf2bdf by doing the following:
 | 
						|
 | 
						|
% ./configure 
 | 
						|
% make install
 | 
						|
 | 
						|
Compilation hints:
 | 
						|
 | 
						|
 o  The "configure" script expects the "freetype-config" script to be in the
 | 
						|
    executable path. The "freetype-config" script is installed when Freetype2
 | 
						|
    is installed.
 | 
						|
 | 
						|
 o  The installation directory can be specified by the --prefix=<some dir>
 | 
						|
    command line parameter to the configure script.
 | 
						|
 | 
						|
 o  A statically linked version can be created (on Linux/Unix) by compiling
 | 
						|
    like this:
 | 
						|
 | 
						|
    % make STATIC=-static install
 | 
						|
 | 
						|
RUNNING otf2bdf
 | 
						|
---------------
 | 
						|
 | 
						|
Type the following to get a list of command line options:
 | 
						|
 | 
						|
  % otf2bdf -h
 | 
						|
 | 
						|
ACKNOWLEDGEMENTS
 | 
						|
----------------
 | 
						|
 | 
						|
Thanks go to the following people:
 | 
						|
 | 
						|
  Robert Wilhelm <robert@physiol.med.tu-muenchen.de> for pointing out a
 | 
						|
  crucial problem with the pre-1.0 code.
 | 
						|
 | 
						|
  Lho Li-Da <ollie@ms1.hinet.net> for pointing out a problem with Big5 and
 | 
						|
  GB2312 encoding ids being documented incorrectly in the TT docs and a
 | 
						|
  problem with glyphs that are height 1 or width 1, and a font name problem.
 | 
						|
 | 
						|
  Adrian Havill <havill@threeweb.ad.jp> for unintentionally pointing out a
 | 
						|
  missing feature.
 | 
						|
 | 
						|
  Richard Verhoeven <rcb5@win.tue.nl> for pointing out a font names problem,
 | 
						|
  problem with bitmaps missing their last byte in each row, and an invalid
 | 
						|
  FONT_DESCENT property value.
 | 
						|
 | 
						|
  Choi Jun Ho <junker@jazz.snu.ac.kr> for his inspiration from his
 | 
						|
  implementation that changed some character set names, and added a
 | 
						|
  number of new command line parameters.
 | 
						|
 | 
						|
  Pavel Kankovsky <peak@kerberos.troja.mff.cuni.cz> for providing some
 | 
						|
  critical grid fitting and metrics fixes when generating the bitmaps,
 | 
						|
  adding the code to "auto-detect" bold and italic fonts, removing the
 | 
						|
  dependency on ttobjs.h, finding some remapping bugs, and other fixes.
 | 
						|
 | 
						|
  Matti Koskinen <mjkoskin@sci.fi> for pointing out a problem with using
 | 
						|
  the code 0xffff.
 | 
						|
 | 
						|
  Eugene Bobin <gene@ftim.ustu.ru> for contributing the Cyrillic mapping
 | 
						|
  tables (iso8859.5, koi8.r, windows.1251) and the sample shell scripts for
 | 
						|
  generating sets of BDF fonts.
 | 
						|
 | 
						|
  Oleg N. Yakovlev <yashka@optima.dnepropetrovsk.ua> for alerting me to the
 | 
						|
  problem of certain codes not being loaded correctly in the mapping tables.
 | 
						|
 | 
						|
  Bertrand Petit <elrond@phoe.frmug.org> for providing additional command line
 | 
						|
  parameters to allow more control over the XLFD name generated.
 | 
						|
 | 
						|
  Roman Czyborra <czyborra@cs.tu-berlin.de> for pointing out the need for a
 | 
						|
  change from UNICODE-2.0 to ISO10646-1 in the font XLFD name.
 | 
						|
 | 
						|
  Mike Blazer <blazer@mail.nevalink.ru> for pointing out the include changes
 | 
						|
  needed to compile on Windows.
 | 
						|
 | 
						|
  Solofo Ramangalahy <solofo@mpi-sb.mpg.de> for contributing the ISO8859.1 and
 | 
						|
  ISO8859.3 mapping tables.
 | 
						|
 | 
						|
  Antoine Leca <Antoine.Leca@renault.fr> for suggesting the exchange of
 | 
						|
  columns in the mapping table to better fit the mapping table format used by
 | 
						|
  many.
 | 
						|
 | 
						|
  Robert Brady <rwb197@ecs.soton.ac.uk> for pointing out a problem with the
 | 
						|
  length of _XFREE86_GLYPH_RANGES properties and an Exceed font compiler.
 | 
						|
 | 
						|
  Patrick Hagglund <patrik.hagglund@bredband.net> for providing the patches to
 | 
						|
  use FreeType2 (taken from xmbdfed).
 | 
						|
 | 
						|
  Christos Tountas <cvt@sprynet.com> for finding a buffer overflow problem.
 | 
						|
 | 
						|
  Nelson Beebe <beebe@math.utah.edu> for finding problems with the FreeType
 | 
						|
  includes, the configure setup, and a compilation warning.
 | 
						|
 | 
						|
  "Prophet of the Way" <afu@wta.att.ne.jp> for pointing out a glyph bitmap
 | 
						|
  undergeneration problem.
 | 
						|
 | 
						|
CHANGES
 | 
						|
-------
 | 
						|
Version 3.1
 | 
						|
===========
 | 
						|
  1. Fixes for Freetype includes.
 | 
						|
 | 
						|
  2. Check for Windows TEMP environment variable.
 | 
						|
 | 
						|
  3. Fixed some sign promotion problems that came up with gcc 4.2.3.
 | 
						|
 | 
						|
  4. Fixed a glyph bitmap undergeneration problem that occurs with some TTF
 | 
						|
     fonts.
 | 
						|
 | 
						|
Version 3.0
 | 
						|
===========
 | 
						|
  1. Converted to use Freetype2.
 | 
						|
 | 
						|
  2. Changed name to otf2bdf.
 | 
						|
 | 
						|
  3. Changed all _TTF_* BDF font properties to _OTF_*.
 | 
						|
 | 
						|
  4. Fixed a buffer overflow problem found by Christos Tountas
 | 
						|
     <cvt@sprynet.com>.
 | 
						|
 | 
						|
  5. Changed to usage message to print to stdout.
 | 
						|
 | 
						|
  6. Added the -et command line parameter to print a list of all the encoding
 | 
						|
     tables available in the font.
 | 
						|
 | 
						|
  7. Fixed an encoding name problem with XLFD font names.
 | 
						|
 | 
						|
Version 2.7
 | 
						|
===========
 | 
						|
  1. Swapped all the columns in the mapping files.
 | 
						|
 | 
						|
  2. Changed the mapping table loader to index on the second column instead of
 | 
						|
     the first.
 | 
						|
 | 
						|
  3. Reduced the line length of _XFREE86_GLYPH_RANGES properties to 256
 | 
						|
     instead of 512.
 | 
						|
 | 
						|
Version 2.6
 | 
						|
===========
 | 
						|
  1. Changed the includes to deal with compilation on Windows.
 | 
						|
 | 
						|
  2. Added some new mapping tables.
 | 
						|
 | 
						|
Version 2.5
 | 
						|
===========
 | 
						|
  1. Updated the copyright dates.
 | 
						|
 | 
						|
  2. Fixed an incorrect parameter for Traditional C compilers.
 | 
						|
 | 
						|
  3. Added generation of the _XFREE86_GLYPH_RANGES properties.
 | 
						|
 | 
						|
Version 2.4
 | 
						|
===========
 | 
						|
  1. Change all CRLF's, CR's, or LF's in copyright strings to double spaces.
 | 
						|
 | 
						|
  2. Changed it so gcc 2.8.1 likes the return type of main() again.
 | 
						|
 | 
						|
Version 2.3
 | 
						|
===========
 | 
						|
  1. Changed Makefile.in a bit to make installation more consistent.
 | 
						|
 | 
						|
  2. Changed the lower limit for the vertical and horizontal resolutions to be
 | 
						|
     10dpi instead of 50dpi.
 | 
						|
 | 
						|
Version 2.2
 | 
						|
===========
 | 
						|
  1. Added missing documentation in the manual page.
 | 
						|
 | 
						|
  2. Added the `-u' parameter to allow setting the character used to replace
 | 
						|
     dashes or spaces in the font name.
 | 
						|
 | 
						|
  3. Changed the CHARSET_REGISTRY and CHARSET_ENCODING to be "ISO10646-1"
 | 
						|
     instead of "Unicode-2.0".
 | 
						|
 | 
						|
  4. The numGlyphs property comes back incorrect for some fonts, so the loop
 | 
						|
     cycles through all 65536 possibilities every time now.
 | 
						|
 | 
						|
Version 2.1
 | 
						|
===========
 | 
						|
  1. Added patches provided by Bertrand Petit.
 | 
						|
 | 
						|
  2. Insured compatibility with FreeType 1.1.
 | 
						|
 | 
						|
Version 2.0
 | 
						|
===========
 | 
						|
  1. Created two new subdirectories.  One for mapping tables and one for any
 | 
						|
     other contributed code, scripts, or data.
 | 
						|
 | 
						|
  2. Updated Cyrillic mapping files sent by Eugene Bobin.
 | 
						|
 | 
						|
  3. Minor fixes to make compatible with the latest version of FreeType.
 | 
						|
 | 
						|
Version 1.9
 | 
						|
===========
 | 
						|
  1. Fixed a problem with the first code of a mapping table being lost.
 | 
						|
 | 
						|
Version 1.8
 | 
						|
===========
 | 
						|
  1. Added the Unicode->Cyrillic mapping tables provided by Eugene Bobin.
 | 
						|
 | 
						|
  2. Created a shell script based on Eugene Bobin's scripts to generate sets
 | 
						|
     of BDF fonts at one time.
 | 
						|
 | 
						|
Version 1.7
 | 
						|
===========
 | 
						|
  1. If a remapping table is provided, code ranges are now expected to be
 | 
						|
     specified in terms of the codes in the mapping table.
 | 
						|
 | 
						|
  2. The glyph generation loop is improved a bit.
 | 
						|
 | 
						|
Version 1.6
 | 
						|
===========
 | 
						|
  1. Added two expected keywords REGISTRY and ENCODING in the remap files.
 | 
						|
     These values are used when the font's XLFD name is generated.
 | 
						|
 | 
						|
  2. Added TTF2BDF_VERSION macro used for adding the "Converted by" comment.
 | 
						|
 | 
						|
  3. Handle the case of no glyphs being generated.  No BDF font is produced.
 | 
						|
 | 
						|
  4. Updated for new API with TT_Engine.
 | 
						|
 | 
						|
Version 1.5
 | 
						|
===========
 | 
						|
  1. Fixed a problem with updating the average width field of the XLFD
 | 
						|
     font name.
 | 
						|
 | 
						|
  2. Changed things so bitmaps are generated to a temporay file so an
 | 
						|
     accurate count and metrics can be calculated.
 | 
						|
 | 
						|
  3. Changed things so the font header is not generated until the bitmaps
 | 
						|
     have been generated.  This allows accurate calculations of the various
 | 
						|
     fields needed.
 | 
						|
 | 
						|
  4. Added the '-l' command line parameter that allows specification of a
 | 
						|
     subrange of glyphs to generate.  The syntax is the same as that used in
 | 
						|
     X11 for subranges.  See the X11 XLFD documentation, page 9 for more
 | 
						|
     detail.
 | 
						|
 | 
						|
     Example:
 | 
						|
 | 
						|
       % ttf2bdf -l '60 70 80_90' font.ttf -o font.bdf
 | 
						|
 | 
						|
       The command above will only generate the glyphs for codes 60, 70,
 | 
						|
       and 80 through 90 inclusive.
 | 
						|
 | 
						|
  5. Added the ability to load a mapping table that will remap a font to
 | 
						|
     another character set.  The mapping table should have two columns.
 | 
						|
 | 
						|
     The first column should be the hexadecimal code of the glyph in the
 | 
						|
     "cmap" table ttf2bdf is using.  The second column should have the
 | 
						|
     code which should be used in the BDF font.  An example mapping file
 | 
						|
     is provided which will map fonts from Unicode (default cmap table) to
 | 
						|
     ISO8859-2.
 | 
						|
 | 
						|
  6. Fixed grid fitting to avoid dropout in some cases.
 | 
						|
 | 
						|
  7. Removed dependency on ttobjs.h by using the new API function for
 | 
						|
     retrieving strings.
 | 
						|
 | 
						|
  8. Removed warning about getpid() on Solaris.
 | 
						|
 | 
						|
  9. Rearranged the man page a bit to be more useful.  Minor
 | 
						|
     improvements also done.
 | 
						|
 | 
						|
  10. Changed the loop so it does not include 0xffff as a code because
 | 
						|
      it causes crashes when converting some fonts.
 | 
						|
 | 
						|
Version 1.4 [Never released as binaries]
 | 
						|
===========
 | 
						|
  1. Changed the names of two MS encodings (Wansung and Johab) to
 | 
						|
     KSC5601.1987 and KSC5601.1992.
 | 
						|
 | 
						|
  2. Added the '-n' command line flag to turn hinting off.
 | 
						|
 | 
						|
  3. Added the '-c' command line flag to set the font spacing.
 | 
						|
 | 
						|
  4. Added the '-t', '-w', and '-s' command line options to override the
 | 
						|
     default typeface, weight and slant names.
 | 
						|
 | 
						|
Version 1.3
 | 
						|
===========
 | 
						|
  1. Converted to use the new FreeType API.
 | 
						|
 | 
						|
  2. Added the '-rh' and '-rv' command line parameters to allow both the
 | 
						|
     horizontal and vertical resolutions to be set individually.
 | 
						|
 | 
						|
  3. Fixed a problem with ignoring undefined glyphs.  All undefined were
 | 
						|
     being rendered which caused missing glyphs on the end.
 | 
						|
 | 
						|
  4. Fixed a problem with offset calculations needed to render glyph
 | 
						|
     bitmaps.
 | 
						|
 | 
						|
Version 1.2
 | 
						|
===========
 | 
						|
  1. Fixed a problem with dashes that appear in the font family name causing
 | 
						|
     parse problems with the XLFD font names.
 | 
						|
 | 
						|
  2. Fixed a problem with certain bitmaps missing their final byte on each
 | 
						|
     row.
 | 
						|
 | 
						|
  3. Fixed an incorrect FONT_DESCENT value.
 | 
						|
 | 
						|
  4. Changed things around so names can be retrieved in a more general way.
 | 
						|
 | 
						|
  5. Fixed a problem with bitmaps not being generated after a certain point.
 | 
						|
 | 
						|
Version 1.1
 | 
						|
===========
 | 
						|
  1. Fixed the actual glyph count for the CHARS line.
 | 
						|
 | 
						|
  2. Swapped the Big5 and GB2312 XLFD encoding strings because of incorrect TT
 | 
						|
     specifications.
 | 
						|
 | 
						|
  3. Fixed a problem with bitmap generation for glyphs that are width 1 or
 | 
						|
     height 1.
 | 
						|
 | 
						|
  4. Added command line parameters to set the font and render pool memory
 | 
						|
     sizes in Kilobytes from the command line.
 | 
						|
 | 
						|
Version 1.0
 | 
						|
===========
 | 
						|
  1. Initial release.
 | 
						|
 | 
						|
mleisher@crl.nmsu.edu (Mark Leisher)
 | 
						|
22 May 2008
 |