PSTOIMG(1) User Contributed Perl Documentation PSTOIMG(1)
pstoimg - Convert a PostScript file to a bitmap image using Ghostscript
and the Netpbm utilities
pstoimg -help │ -version
pstoimg [ -antialias ] [ -aaliastext ] [ -center num ] [ -color num ]
[ -crop code ] [ -debug ] [ -density num] [ -depth num ] [ -discard ]
[ -flip code ] [ -geometry XxY ] [ -interlaced ] [ -margins X,Y ]
[ -multipage ] [ -out file ] [ -quiet ] [ -rightjustify num ]
[ -scale num ] [ -tmp path ] [ -topjustify [x]num ] [ -transparent ]
[ -type type ] [ -shoreup num[d] ] [ -white ] file [ file2 ... ]
The command line options may be abbreviated to the shortest unique pre-
Show this help page and exit.
Show the release and version of pstoimg and exit.
Use Ghostscript’s anti-aliasing feature for rendering "softer"
images. This applies to lines and edges of polygonal and oval or
circular shapes. Only valid if Ghostscipt 4.03 or higher is
Use Ghostscript’s anti-aliasing feature for "smoother" font charac-
ters, without the jagged edges. Similar to -antialias for graphic
components. Only valid if Ghostscipt 4.03 or higher is installed.
Add the appropriate amount of whitespace to the left of the image
so that the image appears to be centered in a total width of num
Crop the bitmap from the given directions. code may be a string of
several cropping instructions, which are executed strictly in the
given order. Possible values are: h (horizontal, i.e. crop top and
bottom), v (vertical), tblr (top, bottom, left, right) and a (all
directions). A special case is s: "shave" the image at the bottom,
but only if a single line of whitespace exists.
Turn on debugging output. This can get rather verbose. Any interme-
diate files generated are not removed to help debugging.
The density (resolution) in DPI in which to render the bitmap. The
default is 72.
-depth num or -color num
Specify the color depth of the bitmap. Legal values are 1 (black &
white), 8 (256 colors) and 24 (true color).
Delete the input postscript file if the conversion was successful.
Setting the environment DISCARD to a true value (as perl sees it)
has the same effect.
Flip all generated output bitmaps. The following codes are recog-
nized: lr (flip left-right), tb (flip top-bottom), xy (flip bot-
tom/left-top/right), r90 and ccw (rotate by 90 degrees counter-
clockwise), r270 and cw (rotate 90 degrees clockwise) and r180
(rotate 180 degrees).
Render only this "window" of the PostScript file. If given, this
option can dramatically reduce memory requirements and speed up
conversion. The geometry is automatically detected in case of EPS
files (Encapsulated PostScript).
Generate an interlaced bitmap. Interlaced images build up from
coarse to fine as they are loaded. This option may not work on
every installation and/or bitmap type, depending of the capabili-
ties of external programs.
The offset of the rectangle in the postscript file that is going to
be rendered from top/left. Can be used together with -geometry to
further reduce the size of the intermediate bitmap file generated
Process a multi-page PostScript file, i.e. create an individual
bitmap for every page. The resulting files are numbered: The deci-
mal number (starting with 1) is appended to the basename of the
PostScript input file (or the basename of the filename specified
with -out), while keeping the extension.
The file where to write the bitmap. If multiple PostScript files
are supplied on the command line, this option is ignored. The
bitmap type extension is appended automatically if file does not
contain a dot. In connection with -multipage file is extended by
the page number as shown in this example:
-outfile foo.gif --------> foo1.gif, foo2.gif, ...
Do not print anything except error messages.
Add the appropriate amount of whitespace to the left of the image
so that it appears to be aligned to the right in a total width of
Scale the image by factor. Valid choices are any numbers greater
than zero. Useful choices are numbers between 0.1 - 5. Large num-
bers may generate very large intermediate files and will take
longer to process. If this option is omitted, the environment SCALE
Make height and width of the bitmap(s) an exact multiple of num. If
num is followed by a "d", then half the extra vertical space is
placed underneath. This option is useful, if you want to have
"blown-up" images of high quality for print, but downscale them in
HTML using "<IMG WIDTH=x HEIGHT=y>". If the actual image is is not
an integer multiple of x,y then browsers tend to display distorted
Use path to store temporary files. Defaults to /tmp on this instal-
lation. This parameter can be set by the environment TMP or TEMP,
Add padding whitespace to the image so that it gets a defined
height. If an integer value is given, it defines the total height.
The whitespace is added at the bottom. If the number is preceded by
"x", then this multiple of the image height is added as whitespace
at the bottom.
Generate transparent bitmaps, i.e. the background color (white) is
transparent if viewed with certain viewers (e.g. browsers). This
option may not be available due to missing capabilities of external
Instruct pstoimg to render the bitmap in type format. Depending on
the local installation, pstoimg is capable of generating either GIF
or PNG bitmaps. This site features the following types: png gif
If omitted, the first type in this list is taken.
Remove TeX’s page color information from the PostScript file before
converting so that a white background is used.
pstoimg iterates over the given input files and runs them through
Ghostscipt. The resulting pnm (portable anymap files) are processed
with different Netpbm tools (cropping, color mapping, aligning, ...)
and finally converted into (currently) either GIF or PNG format. The
bitmaps can now be included e.g. in WWW pages.
The PostScript file is converted as is. If a valid bounding box is
found (EPS format), then only this area is converted. The image is not
cropped by default.
0 if everything went all right
x (x != 0) something went wrong. See the message output.
Convert the first page of foo.ps to the default bitmap type.
"pstoimg -type png -crop a -trans -interlace foo.ps"
Same as above, but force png output and crop all the whitespace
around the image and make the color white transparent and generate
an interlaced bitmap.
"pstoimg -multi -out bar -type gif -crop a foo.ps"
Consider foo.ps a multiple page PostScript file and create output
files bar1.gif, bar2.gif, etc.
DENSITY, DEPTH, DEBUG, DISCARD
See -density, -depth, -debug, -discard, respectively.
This variable is set to the path(s) where Ghostscript libraries
have been found on this system during configuration, but only if
the built-in paths are not correct. This fixes the problem of relo-
cation that is quite common on Win32 installations. This behavior
can be overridden by setting GS_LIB manually before starting
The directory where the LaTeX2HTML library and perl modules are
found. Defaults to "/usr/share/latex2html" on this installation.
Setting this has the same effect as specifying -out. Please do not
rely on this feature any more, it will disappear from the next
The papersize to use by Ghostscript to render the image. pstoimg
tries hard to optimize for rendering on the smallest possible
bitmap size. Still this option is there to enable tuning by hand,
although it is deprecated. If pstoimg finds a better setting, this
parameter is ignored.
See the discussion of -scale.
TMP and TEMP
Unless overridden by -tmp, these variables denote a directory where
to store temporary files. TMP is considered first, then TEMP.
gs, pnmcrop, pnmquant, pbmmake, pnmcat, pnmfile, pnmflip, ppmtogif,
pnmtopng, giftool, giftrans.
Several people have suggested to use ImageMagick’s convert instead of
pstoimg. A few comments on this: convert uses (of course) Ghostscript
for conversion of PostScript to bitmap, so one still needs gs. And for
the special requirements of LaTeX2HTML convert’s features are not suf-
ficient. The ImageMagick toolset has everything in place, but it has
some overhead that can prove killing when processing some 100 images.
pstoimg only does what it really has to, so it should be quite effi-
cient. Don’t get me wrong - I like ImageMagick, but not in the context
This utility is automatically configured and built to work on the local
setup. If this setup changes (e.g. some of the external commands are
moved), the script has be be reconfigured.
Despite the portability of perl, a pstoimg configured on UNIX will
probably not work on Win32 and vice versa.
This is a major enhancement release, so there may be a few bugs. As the
user inteface changed a bit, some of your tools that were using pstoimg
may not work any more.
Please report bugs to email@example.com, stating the (debug) output of
pstoimg, your perl version and the versions of the external tools.
Best is to include the cfgcache.pm file from the configuration proce-
Marek Rouchal <firstname.lastname@example.org>
This script went through a long evolution, beginning with a modifica-
tion of Doug Crabill’s <email@example.com> ps2epsi script. The first
perl version was done by Nikos Drakos <firstname.lastname@example.org>. It was
gradually improved by numerous LaTeX2HTML developers: Ross Moore
<email@example.com>, Jens Lippmann <firstname.lastname@example.org-
stadt.de> and others (sorry for not mentioning everyone and thanks for
perl v5.8.4 2005-03-20 PSTOIMG(1)
Man(1) output converted with