pdftotext(1)

NAME
pdftotext - Portable Document Format (PDF) to text converter (version 4.06)

SYNOPSIS
pdftotext [options] [PDF-file [text-file]]

DESCRIPTION
Pdftotext converts Portable Document Format (PDF) files to plain text.

Pdftotext reads the PDF file, PDF-file, and writes a text file, text-file. If text-file is not specified, pdftotext converts file.pdf to file.txt. If text-file is '-', the text is sent to stdout.

CONFIGURATION FILE
Pdftotext reads a configuration file at startup. It first tries to find the user's private config file, ~/.xpdfrc. If that doesn't exist, it looks for a system-wide config file, typically /etc/xpdfrc (but this location can be changed when pdftotext is built). See the xpdfrc(5) man page for details.

OPTIONS
Many of the following options can be set with configuration file commands. These are listed in square brackets with the description of the corresponding command line option.

-f number
    Specifies the first page to convert.

-l number
    Specifies the last page to convert.

-layout
    Maintain (as best as possible) the original physical layout of the text. The default is to 'undo' physical layout (columns, hyphenation, etc.) and output the text in reading order. If the -fixed option is given, character spacing within each line will be determined by the specified character pitch.

-simple
    Similar to -layout, but optimized for simple one-column pages. This mode will do a better job of maintaining horizontal spacing, but it will only work properly with a single column of text.

-simple2
    Similar to -simple, but handles slightly rotated text (e.g., OCR output) better. Only works for pages with a single column of text.

-table
    Table mode is similar to physical layout mode, but optimized for tabular data, with the goal of keeping rows and columns aligned (at the expense of inserting extra whitespace). If the -fixed option is given, character spacing within each line will be determined by the specified character pitch.

-lineprinter
    Line printer mode uses a strict fixed-character-pitch and -height layout. That is, the page is broken into a grid, and characters are placed into that grid. If the grid spacing is too small for the actual characters, the result is extra whitespace. If the grid spacing is too large, the result is missing whitespace. The grid spacing can be specified using the -fixed and -linespacing options. If one or both are not given on the command line, pdftotext will attempt to compute appropriate value(s).

-raw
    Keep the text in content stream order. Depending on how the PDF file was generated, this may or may not be useful.

-fixed number
    Specify the character pitch (character width), in points, for physical layout, table, or line printer mode. This is ignored in all other modes.

-linespacing number
    Specify the line spacing, in points, for line printer mode. This is ignored in all other modes.

-clip
    Text which is hidden because of clipping is removed before doing layout, and then added back in. This can be helpful for tables where clipped (invisible) text would overlap the next column.

-nodiag
    Diagonal text, i.e., text that is not close to one of the 0, 90, 180, or 270 degree axes, is discarded. This is useful to skip watermarks drawn on top of body text, etc.

-enc encoding-name
    Sets the encoding to use for text output. The encoding-name must be defined with the unicodeMap command (see xpdfrc(5)). The encoding name is case-sensitive. This defaults to "Latin1" (which is a built-in encoding). [config file: textEncoding]

-eol unix | dos | mac
    Sets the end-of-line convention to use for text output. [config file: textEOL]

-nopgbrk
    Don't insert a page breaks (form feed character) at the end of each page. [config file: textPageBreaks]

-bom
    Insert a Unicode byte order marker (BOM) at the start of the text output.

-marginl number
    Specifies the left margin, in points. Text in the left margin (i.e., within that many points of the left edge of the page) is discarded. The default value is zero.

-marginr number
    Specifies the right margin, in points. Text in the right margin (i.e., within that many points of the right edge of the page) is discarded. The default value is zero.

-margint number
    Specifies the top margin, in points. Text in the top margin (i.e., within that many points of the top edge of the page) is discarded. The default value is zero.

-marginb number
    Specifies the bottom margin, in points. Text in the bottom margin (i.e., within that many points of the bottom edge of the page) is discarded. The default value is zero.

-opw password
    Specify the owner password for the PDF file. Providing this will bypass all security restrictions.

-upw password
    Specify the user password for the PDF file.

-verbose
    Print a status message (to stdout) before processing each page. [config file: printStatusInfo]

-q  Don't print any messages or errors. [config file: errQuiet]

-cfg config-file
    Read config-file in place of ~/.xpdfrc or the system-wide config file.

-listencodings
    List all available text output encodings, then exit.

-v  Print copyright and version information, then exit.

-h  Print usage information, then exit. (-help and --help are equivalent.)

BUGS
Some PDF files contain fonts whose encodings have been mangled beyond recognition. There is no way (short of OCR) to extract text from these files.

EXIT CODES
The Xpdf tools use the following exit codes:

0   No error.

1   Error opening a PDF file.

2   Error opening an output file.

3   Error related to PDF permissions.

98  Out of memory.

99  Other error.

AUTHOR
The pdftotext software and documentation are copyright 1996-2025 Glyph & Cog, LLC.

SEE ALSO
xpdf(1), pdftops(1), pdftohtml(1), pdfinfo(1), pdffonts(1), pdfdetach(1), pdftoppm(1), pdftopng(1), pdfimages(1), xpdfrc(5)
http://www.xpdfreader.com/