pbmtext [-font fontfile] [-builtin fontname] [-space pixels] [-lspace
pixels] [-nomargins] [-width pixels] [text]

Minimum unique abbreviation of option is acceptable. You may use dou-
ble hyphens instead of single hyphen to denote options. You may use
white space in place of the equals sign to separate an option name
from its value.

This program is part of Netpbm.

pbmtext takes the specified text, either a single line from the com-
mand line or multiple lines from standard input, and renders it into a
PBM graphical image.

In the image, each line of input is a line of output. Formatting
characters such as newline have no effect on the formatting; like any
unprintable character, they turn into spaces.

The image is just wide enough for the longest line of text, plus mar-
gins, and just high enough to contain the lines of text, plus margins.

The left and right margins are twice the width of the widest character
in the font; the top and bottom margins are the height of the tallest
character in the font. But if the text is only one line, all the mar-
gins are half of this. You can use the -nomargins option to eliminate
the margins.

pbmtextps does the same thing as pbmtext, but uses Ghostscript to gen-
erate the characters, which means you can use Postscript fonts. But
it also means you have to have Ghostscript installed and it isn't as
fast. Also, pbmtextps generates only one line of text, whereas pbm-
text can create multiple lines.

pbmtext is meant for small quantities of simple text. If you're work-
ing with a document, you would be better off using a document format-
ting program to 'print' to a Postscript file, then feeding that
Postscript to pstopnm.



-space pixels

-lspace pixels


-width pixels

Often, you want to place text over another image. One way to do this
is with ppmlabel. ppmlabel does not give you the font options that
pbmtext does, though.

Another way is to use pbmtext to create an image containing the text,
then use pamcomp to overlay the text image onto your base image. To
make only the text (and not the entire rectangle containing it) cover
the base image, you will need to give pamcomp a mask, via its -alpha
option. You can just use the text image itself as the mask, as long
as you also specify the -invert option to pamcomp.

If you want to overlay colored text instead of black, just use ppm-
change to change all black pixels to the color of your choice before
overlaying the text image. But still use the original black and white
image for the alpha mask.

If you want the text at an angle, use pnmrotate on the text image (and
alpha mask) before overlaying.

There are three kinds of fonts you an use with pbmtext:

? built in



BDF Font
BDF is an ancient font format that at one time was standard for the X
Window System. Now, you don't see it very often, but you can find
some BDF fonts on the Xfree86 web site.

You can get the full package of the BDF fonts from XFree86 (see above)
from the Netpbm web site .

PBM Font
To create a font as a PBM file (to use with the -font option), you
just create a PBM image of the text matrix below.

The first step is to display text matrix below on the screen, e.g. in
an X11 window.

M ',/^_['jpqy| M

/ !'#$%&'()*+ /
< ,-./01234567 <
> 89:;<=>?@ABC >
{ ]^_'abcdefg {
} hijklmnopqrs }
~ tuvwxyz{|}~ ~

M ',/^_['jpqy| M

Make sure it's a fixed width font -- This should display as a perfect

Also, try to use a simple display program. Pbmtext divides this into
a matrix of cells, all the same size, each containing one character,
so it is important that whatever you use to display it display with
uniform horizontal and vertical spacing. Fancy word processing pro-
grams sometimes stretch characters in both directions to fit certain
dimensions, and that won't work. Sometimes a display program scales a
font to show a character larger or smaller than its natural size.
That too won't often work because the rounding involved in such scal-
ing causes non-uniform distances between characters.

If you display the text matrix improperly, the usual symptom is that
when you try to use the font, pbmtext fails with an error message
telling you that the number of lines in the font isn't divisible by
11, or it can't find the blank band around the inner rectangle. Some-
times the symptom is that one of the characters displays with a piece
of the character that is next to it in the matrix. For example, 'l'
might display with a little piece of the 'm' attached on its right.

Do a screen grab or window dump of that text, using for instance xwd,
xgrabsc, or screendump. Convert the result into a pbm file. If nec-
essary, use pamcut to remove anything you grabbed in addition to the
text pictured above (or be a wimp and use a graphical editor such as
ImageMagick). Finally, run it through pnmcrop. to make sure the
edges are right up against the text. pbmtext can figure out the sizes
and spacings from that.

pbmtextps, pamcut, pnmcrop, pamcomp, ppmchange, pnmro-
tate, ppmlabel, pstopnm, pbm

Copyright (C) 1993 by Jef Poskanzer and George Phillips

netpbm documentation 26 April 2007 Pbmtext User Manual(0)