1psfxform(1)                        PSF Tools                       psfxform(1)
2
3
4

NAME

6       psfxform - Apply various transformations to a PC Screen Font file
7

SYNOPSIS

9       psfxform  [--first=FIRST]  [--last=LAST] [--256] [--bold=RANGE] [--cen‐
10       tre=RANGE]     [--double=RANGE]     [--flip=RANGE]     [--repeat=RANGE]
11       [--scale=RANGE]      [--thin=RANGE]      [--strip]      [--width=WIDTH]
12       [--height=HEIGHT]    [--codepage=CODEPAGE]     [--setcodepage=CODEPAGE]
13       [--permute=FILE] [--psf1] [--psf2] [INPUTFILE [OUTPUTFILE]]

DESCRIPTION

15       psfxform  extracts  some or all characters from a font in the .PSF for‐
16       mat, applies various transformations, and saves the result  as  another
17       .PSF  font.   Subsets  can  be extracted as a range of characters, as a
18       codepage, or both.
19
20       The character ranges passed to --bold, --double and so on are optional.
21       If present, they are formed as a comma-separated list - each element is
22       nnn for a single character, nnn-nnn for a contiguous set of characters.
23       For  example,  to  apply  --repeat  to  characters 8,10 and 179 to 223:
24       --repeat=8,10,179-223
25

OPTIONS

27       --codepage=x
28              Extracts only the characters in the given codepage (requires the
29              source  PSF file to have a Unicode directory). Any characters in
30              the codepage not present in the  source  font  are  replaced  by
31              blanks.  The  codepage  can  be specified by number or name; see
32              psfpages(1) for a list of acceptable codepage names.
33
34       --setcodepage=x
35              Replace any Unicode information in the  extracted  font  by  the
36              Unicode  mappings  for  the  specified  codepage. Note that this
37              option does not change the character bitmaps in any way.
38
39       --strip
40              Forces the output font to be written with no Unicode  directory,
41              even if the source font had one.
42
43       --first=n
44              Extracts characters starting at the specified character.
45
46       --last=n
47              Extracts characters up to and including the specified character.
48
49       --256  Equivalent to --first=0 --last=255.
50
51       --permute=filename
52              Rearrange  the  character  bitmaps in the output file. This only
53              affects character bitmaps, not the Unicode directory. The  file‐
54              name passed to --permute can be "-" for standard input; its for‐
55              mat should be a series of lines,  each  containing  two  numbers
56              separated  by  a comma. The first number is the character number
57              to change from, and the second is the number to change  to.  For
58              example,  two  lines,  the  first reading "65,66" and the second
59              reading "66,65", will swap the glyphs  for  A  and  B.  Anything
60              after  a  #  or  ;  is a comment. The numbers used relate to the
61              source file, before any subset is extracted.
62
63       --width
64              Alter the character cell width in the target font. This  doesn't
65              scale  characters; it's Procrustean, so glyphs are either packed
66              with whitespace or cropped.
67
68       --height
69              Alter the character cell height in the target font.
70
71       --bold=RANGE
72              Makes characters bold by drawing them twice.  Note  that  if  no
73              --width  option  is supplied, this will make the target font one
74              pixel wider than the source font.
75
76       --centre=RANGE
77              If the character cell is being made larger  or  smaller,  aligns
78              character  cells by their centres rather than by their top left-
79              hand corners. The spelling --center is also recognised.   --dou‐
80              ble=RANGE  Doubles each row in the source character. This should
81              be used with the --height option to increase the number of char‐
82              acter  rows,  otherwise only the top half of each character will
83              be used.
84
85       --flip=RANGE
86              Mirror characters left/right.   --repeat=RANGE  When  increasing
87              the size with --height or --width, repeat the last character row
88              and column into  new  rows/columns,  rather  than  leaving  them
89              blank.  This may help to keep line graphic characters joined up.
90              When combined with --centre, characters will be expanded at  all
91              four edges if necessary.
92
93       --scale=RANGE
94              If  the character cell is being made larger or smaller, attempts
95              to scale the characters to fit. This will  probably  look  awful
96              unless  the  new  size  is an exact multiple of the old size, or
97              unless you tidy the characters by hand afterwards.
98
99       --thin=RANGE
100              Makes characters thin by reducing vertical lines wider than  one
101              pixel.
102
103       --psf1 Forces output to be in PSF1 format.
104
105       --psf2 Forces output to be in PSF2 format.
106
107       If  a  codepage  and --first / --last are both specified, the --first /
108       --last apply to the subset of characters  extracted  by  the  codepage.
109       Similarly  all  character  ranges  on  --bold, --thin etc. apply to the
110       extracted subset.
111
112

SEE ALSO

114       psfpages(1)
115

AUTHOR

117       John Elliott <jce@seasip.demon.co.uk>.
118
119Version 1.0.8                    21 June, 2008                     psfxform(1)
Impressum