ddjvu - Command line DjVu decoder.
ddjvu -format=fmt [options] [djvufile] [outputfile]
Decode the DjVu file djvufile, produces the image file outputfile.
The DjVu data is read from the standard input when argument djvufile is
not specified or when it is equal to a single dash. Similarly, the
output data is written to the standard output when argument outputfile
is not specified or equal to a single dash. However a valid output
file name is always required when producing a TIFF or PDF file.
Specify the output file formats. The recognized file formats
are pbm, pgm, ppm, pnm, rle, tiff, and pdf.
* Formats pbm, pgm, and ppm respectively produce a Portable
Bitmap (PBM), Portable Graymap (PGM), or Portable Pixmap
(PGM) file. Format pnm produces a PBM, PGM, or PPM output
file according to the color content of the output image.
* Format rle produces a compact run length encoded bitonal file
that is understood by the DjVuLibre commands cjb2 and
* Format tiff produces a Tagged Image Format (TIFF) file. The
resulting file uses the best available lossless compression
model. Enabling lossy JPEG compression (see option -quality
below) often produces much smaller files. Commands tiffcp(1)
and tiffsplit(1) are useful for manipulating the resulting
* Format pdf produces a Portable Document Format (PDF) file.
Each page in the resulting file is represented by an image at
the specified resolution, using the best available lossless
compression model. Enabling lossy JPEG compression (see
option -quality below) often produces much smaller files. An
alternate way to produce PDF file consists in first using
djvups(1) and convert the resulting PostScript file to PDF.
Which method gives better results depends on the contents of
the DJVU file and on the capabilities of the PS to PDF
When option -format is not specified, the extension of argument
outputfile has no influence on the default output format.
Instead the program behavior is modified to ensure backward
compatibility with previous versions of ddjvu. We recommend to
always specify the output format using this option.
Specify which pages should be decoded. When this option is not
specified, all pages of the documents are decoded and
concatenated into the output file. The page specification
pagespec contains one or more comma-separated page ranges. A
page range is either a page number, or two page numbers
separated by a dash. For instance, specification 1-10 outputs
pages 1 to 10, and specification 1,3,99999-4 outputs pages 1 and
3, followed by all the document pages in reverse order up to
Selects which layers of the DjVu image should be rendered.
Valid rendering modes are color, black, mask, foreground, and
* Rendering mode color is the default mode. When the DjVu file
is bitonal, bitonal or gray-level output is produced
depending on the subsampling factor. Otherwise a color image
* Rendering mode black is useful to extract a meaningful black
and white image. bitonal or gray-level output is produced
depending on the subsampling factor.
* Rendering modes mask, foreground, and background select
specific layers of a DjVu image. These modes can fail if the
DjVu image does not contain the selected layer.
The following options control the resolution of the output image. The
default resolution is the native resolution of the DjVu file,
equivalent to selecting -1.
-n Specify an integer sub-sampling factor. The dimensions of the
full output image will be n times smaller than the DjVu image
size. The legal values for argument n range from 1 to 12.
Option -1, for instance, produces an output image whose
resolution is equal to the resolution of the input DjVu image
This is equivalent to option -n.
Specify a magnification factor relative to the resolution stored
in the DjVu image. Specifying magnification of 100 produces an
image suitable for displaying on a 100 dpi device such as a
computer screen. The magnification factor mag can also be
interpreted as the resolution of the output image expressed in
dot per inch.
Specify the size of the full output image. Rendering the full
DjVu image would create an output image whose width and height
would not exceed w and h. To change the aspect ratio, you must
also use option -aspect=no.
This option indicates whether the image aspect ratio should be
preserved. The defaults is to preserve the aspect ration. This
option permits changes in the aspect ratio when used in
combination with option -size.
Display informational messages describing the structure of the
DjVu image and the format of the output file.
Specify an image segment to render. Program ddjvu conceptually
renders the full page using the specified resolution, and then
extracts a sub-image of width w and height h, starting at
position (x,y) relative to the bottom left corner of the page.
Both operations of course happen simultaneously. Rendering a
small sub-image is much faster than rendering the complete
image. The output file will always have size wxh when this
option is specified.
Enables lossy compression in TIFF and PDF files. Without this
option, TIFF or PDF output files always use lossless compression
or no compression. Argument factor specifies a JPEG
quantization factor ranging from 25 to 150. See command cjpeg(1)
for more information on JPEG quantization factors. Value 80 is
a good starting point.
Various options have been maintained to ensure backward compatibility
with previous versions of ddjvu. When option -format is not specified,
the program only decodes the first page of the document and the default
resolution becomes -scale=100. Options -size, -scale, -segment, and
-page accept an argument separated by a space. Options -foreground,
-background, and -black are shorthands for the -mode=mod option.
Please do not rely on these features.
ddjvu -format=tiff myfile.djvu myfile.tif
decodes all pages and produces a multipage TIFF file.
ddjvu -format=ppm -page=1 -size=100x100 myfile.djvu -
produces a thumbnail for the first page of a document and outputs it as
a PPM file on the standard output.
The new version of this program was written by Leon Bottou
This program includes code derived from program tiff2pdf, written by
Ross Finlayson and released under a BSD license.
djvu(1), djview(1), pnm(5), pbm(5), pgm(5), ppm(5), cjpeg(1),