All of the Xpdf tools read a single configuration file. If you have a
.xpdfrc file in your home directory, it will be read. Otherwise, a
system-wide configuration file will be read from /etc/xpdf/xpdfrc, if
it exists. (This is its default location; depending on build options,
it may be placed elsewhere.) On Win32 systems, the xpdfrc file should
be placed in the same directory as the executables.
The xpdfrc file consists of a series of configuration options, one per
line. Blank lines and lines starting with a '#' (comments) are
The following sections list all of the configuration options, sorted
into functional groups. There is an examples section at the end.
Note that all settings are case-sensitive; in particular, boolean
options are "yes" and "no" (rather than "Yes" or "No").
Includes the specified config file. The effect of this is
equivalent to inserting the contents of config-file directly
into the parent config file in place of the include command.
Config files can be nested arbitrarily deeply.
Specifies a file with the mapping from character names to Uni-
code. This is used to handle PDF fonts that have valid encod-
ings but no ToUnicode entry. Each line of a nameToUnicode file
looks like this:
The hex-string is the Unicode (UCS-2) character index, and name
is the corresponding character name. Multiple nameToUnicode
files can be used; if a character name is given more than once,
the code in the last specified file is used. There is a built-
in default nameToUnicode table with all of Adobe's standard
cidToUnicode registry-ordering map-file
Specifies the file with the mapping from character collection to
Unicode. Each line of a cidToUnicode file represents one char-
The hex-string is the Unicode (UCS-2) index for that character.
The first line maps CID 0, the second line CID 1, etc. File
size is determined by size of the character collection. Only
one file is allowed per character collection; the last specified
file is used. There are no built-in cidToUnicode mappings.
rest of the fields are one or more output (correct) Unicode
indexes. Each occurrence of in-hex will be converted to the
specified output sequence.
unicodeMap encoding-name map-file
Specifies the file with mapping from Unicode to encoding-name.
These encodings are used for X display fonts and text output
(see below). Each line of a unicodeMap file represents a range
of one or more Unicode characters which maps linearly to a range
in the output encoding:
in-start-hex in-end-hex out-start-hex
Entries for single characters can be abbreviated to:
The in-start-hex and in-end-hex fields (or the single in-hex
field) specify the Unicode range. The out-start-hex field (or
the out-hex field) specifies the start of the output encoding
range. The length of the out-start-hex (or out-hex) string
determines the length of the output characters (e.g., UTF-8 uses
different numbers of bytes to represent characters in different
ranges). Entries must be given in increasing Unicode order.
Only one file is allowed per encoding; the last specified file
is used. The Latin1, ASCII7, Symbol, ZapfDingbats, UTF-8, and
UCS-2 encodings are predefined.
cMapDir registry-ordering dir
Specifies a search directory, dir, for CMaps for the reg-
istry-ordering character collection. There can be multiple
directories for a particular collection. There are no default
Specifies a search directory, dir, for ToUnicode CMaps. There
can be multiple ToUnicode directories. There are no default
displayFontT1 PDF-font-name T1-file
Maps a PDF font, PDF-font-name, to a Type 1 font for display.
The Type 1 font file, T1-file, should be a standard .pfa or .pfb
displayFontTT PDF-font-name TT-file
Maps a PDF font, PDF-font-name, to a TrueType font for display.
The TrueType font file, TT-file, should be a standard .ttf file.
displayNamedCIDFontT1 PDF-font-name T1-file
Maps a specific PDF CID (16-bit) font, PDF-font-name, to a CID
font (16-bit PostScript font), for display. There are no
default CID font mappings.
displayCIDFontTT registry-ordering TT-file
Maps the registry-ordering character collection to a (16-bit)
TrueType font, for display. This mapping is used if the font
name doesn't match any of the fonts declared with displayNamed-
CIDFont* commands. There are no default CID font mappings.
Specifies a search directory for external font files. There can
be multiple fontDir directories. If a PDF file uses a font but
doesn't embed it, these directories will be searched for a
matching font file. These fonts are used by both xpdf (for dis-
play) and pdftops (for embedding in the generated PostScript).
Type 1 fonts must have a suffix of ".pfa", ".pfb", ".ps", or no
suffix at all. TrueType fonts must have a ".ttf" suffix. Other
files in these directories will be ignored. There are no
default fontDir directories.
psPaperSize width(pts) height(pts)
Sets the paper size for PostScript output. The width and height
parameters give the paper size in PostScript points (1 point =
psPaperSize letter | legal | A4 | A3 | match
Sets the paper size for PostScript output to a standard size.
The default paper size is set when xpdf and pdftops are built,
typically to "letter" or "A4". This can also be set to "match",
which will set the paper size to match the size specified in the
psImageableArea llx lly urx ury
Sets the imageable area for PostScript output. The four inte-
gers are the coordinates of the lower-left and upper-right cor-
ners of the imageable region, specified in points (with the ori-
gin being the lower-left corner of the paper). This defaults to
the full paper size; the psPaperSize option will reset the
imageable area coordinates.
psCrop yes | no
If set to "yes", PostScript output is cropped to the CropBox
specified in the PDF file; otherwise no cropping is done. This
defaults to "yes".
psExpandSmaller yes | no
If set to "yes", PDF pages smaller than the PostScript imageable
area are expanded to fill the imageable area. Otherwise, no
scalling is done on smaller pages. This defaults to "no".
psShrinkLarger yes | no
If set to yes, PDF pages larger than the PostScript imageable
area are shrunk to fit the imageable area. Otherwise, no scal-
ing is done on larger pages. This defaults to "yes".
psCenter yes | no
psFont PDF-font-name PS-font-name
When the PDF-font-name font is used in a PDF file, it will be
translated to the PostScript font PS-font-name, which is assumed
to be resident in the printer. Typically, PDF-font-name and
PS-font-name are the same. By default, only the Base-14 fonts
are assumed to be resident.
psNamedFont16 PDF-font-name wMode PS-font-name encoding
When the 16-bit font PDF-font-name is used in a PDF file with
the wMode writing mode and is not embedded, the PS-font-name
font is substituted for it. The writing mode must be either 'H'
for horizontal or 'V' for vertical. The PS-font-name font is
assumed to be resident in the printer and to use the specified
encoding (which must have been defined with the unicodeMap com-
psFont16 registry-ordering wMode PS-font-name encoding
When a 16-bit font using the registry-ordering character collec-
tion and wMode writing mode is not embedded and does not match
any of the fonts declared in psNamedFont16 commands, the
PS-font-name font is substituted for it. The writing mode must
be either 'H' for horizontal or 'V' for vertical. The
PS-font-name font is assumed to be resident in the printer and
to use the specified writing mode and encoding (which must have
been defined with the unicodeMap command).
psEmbedType1Fonts yes | no
If set to "no", prevents embedding of Type 1 fonts in generated
PostScript. This defaults to "yes".
psEmbedTrueTypeFonts yes | no
If set to "no", prevents embedding of TrueType fonts in gener-
ated PostScript. This defaults to "yes".
psEmbedCIDTrueTypeFonts yes | no
If set to "no", prevents embedding of CID TrueType fonts in gen-
erated PostScript. For Level 3 PostScript, this generates a CID
font, for lower levels it generates a non-CID composite font.
psEmbedCIDPostScriptFonts yes | no
If set to "no", prevents embedding of CID PostScript fonts in
generated PostScript. For Level 3 PostScript, this generates a
CID font, for lower levels it generates a non-CID composite
psPreload yes | no
If set to "yes", PDF forms are converted to PS procedures, and
image data is preloaded. This uses more memory in the Post-
Script interpreter, but generates significantly smaller PS files
in situations where, e.g., the same image is drawn on every page
of a long document. This defaults to "no".
Commands start with a '|' character; anything else is a file.
If the file name or command contains spaces it must be quoted.
This defaults to unset, which tells xpdf to generate a name of
the form <file>.ps for a PDF file <file>.pdf.
See the description above, in the DISPLAY FONTS section.
Sets the encoding to use for text output. (This can be overrid-
den with the "-enc" switch on the command line.) The encod-
ing-name must be defined with the unicodeMap command (see
above). This defaults to "Latin1".
textEOL unix | dos | mac
Sets the end-of-line convention to use for text output. The
unix = LF
dos = CR+LF
mac = CR
(This can be overridden with the "-eol" switch on the command
line.) The default value is based on the OS where xpdf and
pdftotext were built.
textPageBreaks yes | no
If set to "yes", text extraction will insert page breaks (form
feed characters) between pages. This defaults to "yes".
textKeepTinyChars yes | no
If set to "yes", text extraction will keep all characters. If
set to "no", text extraction will discard tiny (smaller than 3
point) characters after the first 50000 per page, avoiding
extremely slow run times for PDF files that use special fonts to
do shading or cross-hatching. This defaults to "no".
initialZoom percentage | page | width | height
Sets the initial zoom factor. A number specifies a zoom per-
centage, where 100 means 72 dpi. You may also specify 'page',
to fit the page to the window size, 'width', to fit the page
width to the window width, or 'height', to fit the page height
to the window height.
continuousView yes | no
If set to "yes", xpdf will start in continuous view mode, i.e.,
with one vertical screoll bar for the whole document. This
defaults to "no".
enableT1lib yes | no
Enables or disables use of t1lib (a Type 1 font rasterizer).
This is only relevant if the Xpdf tools were built with t1lib
the anti-aliasing control provided by the old "t1libControl" and
"freetypeControl" options.) This default to "yes".
vectorAntialias yes | no
Enables or disables anti-aliasing of vector graphics in the PDF
rasterizer. This defaults to "yes".
strokeAdjust yes | no
Enables or disables stroke adjustment. This defaults to "yes".
screenType dispersed | clustered | stochasticClustered
Sets the halftone screen type, which will be used when generat-
ing a monochrome (1-bit) bitmap. The three options are dis-
persed-dot dithering, clustered-dot dithering (with a round dot
and 45-degree screen angle), and stochastic clustered-dot
dithering. By default, "stochasticClustered" is used for reso-
lutions of 300 dpi and higher, and "dispersed" is used for reso-
lutions lower then 300 dpi.
Sets the size of the (square) halftone screen threshold matrix.
By default, this is 4 for dispersed-dot dithering, 10 for clus-
tered-dot dithering, and 100 for stochastic clustered-dot
Sets the halftone screen dot radius. This is only used when
screenType is set to stochasticClustered, and it defaults to 2.
In clustered-dot mode, the dot radius is half of the screen
size. Dispersed-dot dithering doesn't have a dot radius.
Sets the halftone screen gamma correction parameter. Gamma val-
ues greater than 1 make the output brighter; gamma values less
than 1 make it darker. The default value is 1.
When halftoning, all values below this threshold are forced to
solid black. This parameter is a floating point value between 0
(black) and 1 (white). The default value is 0.
When halftoning, all values above this threshold are forced to
solid white. This parameter is a floating point value between 0
(black) and 1 (white). The default value is 1.
Sets the command executed when you click on a URL link. The
string "%s" will be replaced with the URL. (See the example
below.) This has no default value.
Sets the command executed when you click on a movie annotation.
The string "%s" will be replaced with the movie file name. This
index = character code) for all unrecognized glyph names. In
some cases, this leads to usable text, and in other cases it
leads to gibberish -- there is no way for Xpdf to tell. This
defaults to "no".
bind modifiers-key context command ...
Add a key or mouse button binding. Modifiers can be zero or
Key can be a regular ASCII character, or any one of:
left / right / up / down (arrow keys)
f1 .. f35 (function keys)
mousePress1 .. mousePress7 (mouse buttons)
mouseRelease1 .. mouseRelease7 (mouse buttons)
Context is either "any" or a comma-separated combination of:
fullScreen / window (full screen mode on/off)
continuous / singlePage (continuous mode on/off)
overLink / offLink (mouse over link or not)
scrLockOn / scrLockOff (scroll lock on/off)
The context string can include only one of each pair in the
Command is an Xpdf command (see the COMMANDS section of the
xpdf(1) man page for details). Multiple commands are separated
The bind command replaces any existing binding, but only if it
was defined for the exact same modifiers, key, and context. All
tokens (modifiers, key, context, commands) are case-sensitive.
Example key bindings:
# bind ctrl-a in any context to the nextPage
bind ctrl-a any nextPage
"any" context, and you want to create new key bindings for mul-
printCommands yes | no
If set to "yes", drawing commands are printed as they're exe-
cuted (useful for debugging). This defaults to "no".
errQuiet yes | no
If set to "yes", this suppresses all error and warning messages
from all of the Xpdf tools. This defaults to "no".
The following is a sample xpdfrc file.
# from the Thai support package
# from the Japanese support package
cidToUnicode Adobe-Japan1 /usr/local/share/xpdf/Adobe-Japan1.cidToUnicode
unicodeMap JISX0208 /usr/local/share/xpdf/JISX0208.unicodeMap
cMapDir Adobe-Japan1 /usr/local/share/xpdf/cmap/Adobe-Japan1
# use the Base-14 Type 1 fonts from ghostscript
displayFontT1 Times-Roman /usr/local/share/ghostscript/fonts/n021003l.pfb
displayFontT1 Times-Italic /usr/local/share/ghostscript/fonts/n021023l.pfb
displayFontT1 Times-Bold /usr/local/share/ghostscript/fonts/n021004l.pfb
displayFontT1 Times-BoldItalic /usr/local/share/ghostscript/fonts/n021024l.pfb
displayFontT1 Helvetica /usr/local/share/ghostscript/fonts/n019003l.pfb
displayFontT1 Helvetica-Oblique /usr/local/share/ghostscript/fonts/n019023l.pfb
displayFontT1 Helvetica-Bold /usr/local/share/ghostscript/fonts/n019004l.pfb
displayFontT1 Helvetica-BoldOblique /usr/local/share/ghostscript/fonts/n019024l.pfb
displayFontT1 Courier /usr/local/share/ghostscript/fonts/n022003l.pfb
displayFontT1 Courier-Oblique /usr/local/share/ghostscript/fonts/n022023l.pfb
displayFontT1 Courier-Bold /usr/local/share/ghostscript/fonts/n022004l.pfb
displayFontT1 Courier-BoldOblique /usr/local/share/ghostscript/fonts/n022024l.pfb
displayFontT1 Symbol /usr/local/share/ghostscript/fonts/s050000l.pfb
displayFontT1 ZapfDingbats /usr/local/share/ghostscript/fonts/d050000l.pfb
# use the Bakoma Type 1 fonts
# (this assumes they happen to be installed in /usr/local/fonts/bakoma)
# set some PostScript options
psFile "| lpr -Pprinter5"
# assume that the PostScript printer has the Univers and
# Univers-Bold fonts
psFont Univers Univers
psFont Univers-Bold Univers-Bold
This is the default location for the system-wide configuration
file. Depending on build options, it may be placed elsewhere.
This is the user's configuration file. If it exists, it will be
read in place of the system-wide file.
The Xpdf software and documentation are copyright 1996-2007 Glyph &
xpdf(1), pdftops(1), pdftotext(1), pdfinfo(1), pdftoppm(1), pdfim-
27 February 2007 xpdfrc(5)
Man Pages Copyright Respective Owners. Site Copyright (C) 1994 - 2017
All Rights Reserved.