.\" Copyright 1998-2011 Glyph & Cog, LLC
.TH pdfimages 1 "15 August 2011"
.SH NAME
pdfimages \- Portable Document Format (PDF) image extractor
(version 3.03)
.SH SYNOPSIS
.B pdfimages
[options]
.I PDF-file image-root
.SH DESCRIPTION
.B Pdfimages
saves images from a Portable Document Format (PDF) file as Portable
Pixmap (PPM), Portable Bitmap (PBM), Portable Network Graphics (PNG),
Tagged Image File Format (TIFF), JPEG, JPEG2000, or JBIG2 files.
.PP
Pdfimages reads the PDF file
.IR PDF-file ,
scans one or more pages, and writes one file for each image,
.IR image-root - nnn . xxx ,
where
.I nnn
is the image number and
.I xxx
is the image type (.ppm, .pbm, .png, .tif, .jpg, jp2, jb2e, or jb2g).
.PP
The default output format is PBM (for monochrome images) or PPM for
non-monochrome. The \-png or \-tiff options change to default output
to PNG or TIFF respectively. If both \-png and \-tiff are specified,
CMYK images will be written as TIFF and all other images will be
written as PNG. In addition the \-j, \-jp2, and \-jbig2 options will
cause JPEG, JPEG2000, and JBIG2, respectively, images in the PDF file
to be written in their native format.
.SH OPTIONS
.TP
.BI \-f " number"
Specifies the first page to scan.
.TP
.BI \-l " number"
Specifies the last page to scan.
.TP
.B \-png
Change the default output format to PNG.
.TP
.B \-tiff
Change the default output format to TIFF.
.TP
.B \-j
Write images in JPEG format as JPEG files instead of the default format. The JPEG file is identical to the JPEG data stored in the PDF.
.TP
.B \-jp2
Write images in JPEG2000 format as JP2 files instead of the default format. The JP2 file is identical to the JPEG2000 data stored in the PDF.
.TP
.B \-jbig2
Write images in JBIG2 format as JBIG2 files instead of the default format. JBIG2 data in PDF is of the embedded type. The embedded type of JBIG2 has an optional separate file containing global data. The embedded data is written with the extension .jb2e and the global data (if available) will be written to the same image number with the extension .jb2g. The content of both these files is indentical to the JBIG2 data in the PDF.
.TP
.B \-ccitt
Write images in CCITT format as CCITT files instead of the default
format. The CCITT file is identical to the CCITT data stored in the
PDF. PDF files contain additional parameters specifying
how to decode the CCITT data. These parameters are translated to
fax2tiff input options and written to a .params file with the same image
number. The parameters are:
.RS
.TP
.B \-1
1D Group 3 encoding
.TP
.B \-2
2D Group 3 encoding
.TP
.B \-4
Group 4 encoding
.TP
.B \-A
Beginning of line is aligned on a byte boundary
.TP
.B \-P
Beginning of line is not aligned on a byte boundary
.TP
.B \-X n
The image width in pixels
.TP
.B \-W
Encoding uses 1 for black and 0 for white
.TP
.B \-B
Encoding uses 0 for black and 1 for white
.TP
.B \-M
Input data fills from most significant bit to least significant bit.
.RE
.TP
.B \-all
Write JPEG, JPEG2000, JBIG2, and CCITT images in their native format. CMYK files are written as TIFF files. All other images are written as PNG files.
This is equivalent to specifying the options \-png \-tiff \-j \-jp2 \-jbig2 \-ccitt.
.TP
.B \-list
Instead of writing the images, list the images along with various information for each image. Do not specify an
.IR image-root
with this option.
.IP
The following information is listed for each image:
.RS
.TP
.B page
the page number containing the image
.TP
.B num
the image number
.TP
.B type
the image type:
.PP
.RS
image - an opaque image
.RE
.RS
mask - a monochrome mask image
.RE
.RS
smask - a soft-mask image
.RE
.RS
stencil - a monochrome mask image used for painting a color or pattern
.RE
.PP
Note: Tranparency in images is represented in PDF using a separate image for the image and the mask/smask.
The mask/smask used as part of a transparent image always immediately follows the image in the image list.
.TP
.B width
image width (in pixels)
.TP
.B height
image height (in pixels)
.PP
Note: the image width/height is the size of the embedded image, not the size the image will be rendered at.
.TP
.B color
image color space:
.PP
.RS
gray - Gray
.RE
.RS
rgb - RGB
.RE
.RS
cmyk - CMYK
.RE
.RS
lab - L*a*b
.RE
.RS
icc - ICC Based
.RE
.RS
index - Indexed Color
.RE
.RS
sep - Separation
.RE
.RS
devn - DeviceN
.RE
.TP
.B comp
number of color components
.TP
.B bpc
bits per component
.TP
.B enc
encoding:
.PP
.RS
image - raster image (may be Flate or LZW compressed but does not use an image encoding)
.RE
.RS
jpeg - Joint Photographic Experts Group
.RE
.RS
jp2 - JPEG2000
.RE
.RS
jbig2 - Joint Bi-Level Image Experts Group
.RE
.RS
ccitt - CCITT Group 3 or Group 4 Fax
.RE
.TP
.B interp
"yes" if the interpolation is to be performed when scaling up the image
.TP
.B object ID
the image dictionary object ID (number and generation)
.TP
.B x\-ppi
The horizontal resolution of the image (in pixels per inch) when rendered on the pdf page.
.TP
.B y\-ppi
The vertical resolution of the image (in pixels per inch) when rendered on the pdf page.
.TP
.B size
The size of the embedded image in the pdf file. The following suffixes are used: 'B' bytes, 'K' kilobytes, 'M' megabytes, and 'G' gigabytes.
.TP
.B ratio
The compression ratio of the embedded image.
.RE
.TP
.BI \-opw " password"
Specify the owner password for the PDF file.  Providing this will
bypass all security restrictions.
.TP
.BI \-upw " password"
Specify the user password for the PDF file.
.TP
.B \-p
Include page numbers in output file names.
.TP
.B \-q
Don't print any messages or errors.
.TP
.B \-v
Print copyright and version information.
.TP
.B \-h
Print usage information.
.RB ( \-help
and
.B \-\-help
are equivalent.)
.SH EXIT CODES
The Xpdf tools use the following exit codes:
.TP
0
No error.
.TP
1
Error opening a PDF file.
.TP
2
Error opening an output file.
.TP
3
Error related to PDF permissions.
.TP
99
Other error.
.SH AUTHOR
The pdfimages software and documentation are copyright 1998-2011 Glyph
& Cog, LLC.
.SH "SEE ALSO"
.BR pdfdetach (1)
.BR pdffonts (1),
.BR pdfinfo (1),
.BR pdftocairo (1),
.BR pdftohtml (1),
.BR pdftoppm (1),
.BR pdftops (1),
.BR pdftotext (1)
