MuPDF Tools

MuPDF has several tools available:

  • mupdf-gl A handy GUI viewer for Windows and Linux.

  • mutool An all purpose tool for dealing with PDF files.

  • mutool run Run simple scripts using the Javascript bindings.

  • muraster An example RIP to render documents to raster images.

mupdf-gl

The OpenGL based viewer can read PDF, XPS, CBZ, EPUB, & FB2 documents as well as typical image formats including SVG. It compiles on any platform that has a GLUT library. The latest release builds on Linux, Windows, and MacOS.

Command Line Options

mupdf-gl [options] document [page]

[options]

-p password

The password needed to open a password protected PDF file.

-c profile.cc

Load an ICC profile to use for display (default is sRGB).

-r resolution

Set the initial zoom level, specified as DPI. The default value is 72.

-W width

Set the page width in points for EPUB layout.

-H height

Set the page height in points for EPUB layout.

-S size

Set the default font size in points for EPUB layout.

-U stylesheet

Specify a CSS file containing user styles to load for EPUB layout.

-X

Ignore publisher styles for EPUB layout.

-J

Disable JavaScript in PDF forms.

-A level

Set anti-aliasing level or pixel rendering rule.

  • 0: off.

  • 2: 4 levels.

  • 4: 16 levels.

  • 8: 256 levels.

  • 9: using centre of pixel rule.

  • 10: using any part of a pixel rule.

-I

Start in inverted color mode.

-B hex-color

Set black tint color (default 303030).

-C hex-color

Set white tint color (default FFFFF0).

-Y factor

Set UI scaling factor (default calculated from screen DPI).

[page]

The initial page number to show.

Example usage #1:

This will open the viewer with a file browser which allows you to choose the file you need.

mupdf-gl

Example usage #1:

This will open a specific file, in inverted color mode, on page 10.

mupdf-gl -I mupdf_explored.pdf 10

Mouse Bindings

The middle mouse button (scroll wheel button) pans the document view.

The right mouse button selects a region and copies the marked text to the clipboard.

Key Bindings

Several commands can take a number argument entered before the key, to modify the command. For example, to zoom to 150 dpi, type “150z”.

F1

Display help.

i

Show document information.

o

Show document outline.

L

Highlight links.

F

Highlight form fields.

a

Show annotation editor.

r

Reload document.

S

Save document (only for PDF).

q

Quit viewer.

<

Decrease E-book font size.

>

Increase E-book font size.

I

Toggle inverted color mode.

C

Toggle tinted color mode.

E

Toggle ICC color management.

e

Toggle spot color emulation.

A

Toggle anti-aliasing.

f

Toggle fullscreen.

w

Shrinkwrap window to fit page.

W

Fit page width to window.

H

Fit page height to window.

Z

Fit page size to window.

[number] z

Set zoom resolution in DPI.

+

Zoom in.

-

Zoom out.

[

Rotate counter-clockwise.

]

Rotate clockwise.

⬅️➡️⬆️⬇️ or h, j, k, l

Pan page in small increments.

b

Smart move one screenful backward.

[space]

Smart move one screenful forward.

[comma] or [page up]

Go one page backward.

[period] or [page down]

Go one page forward.

[number] g

Go to page number.

G

Go to last page.

m

Save current page to navigation history.

t

Go back in navigation history.

T

Go forward in navigation history.

[number] m

Save current page in numbered bookmark.

[number] t

Go to numbered bookmark.

/

Start searching forward.

?

Start searching backward.

n

Continue searching forward.

N

Continue searching backward.

muraster

This is a much simpler version of mutool draw command. As such it can be used to quickly rasterize an input file with a set of options.

Command Line Options

muraster [options] file [pages]

[options]

-p password

The password needed to open a password protected PDF file.

-o filename

The output file name.

-F format

The output format (default inferred from output file name), e.g. pam, pbm, pgm, pkm, ppm.

-s information

Show extra information: - m: show memory use. - t: show timings.

-R rotation

Set a rotation for the output (default auto): - auto. - 0. - 90. - 180. - 270. - clockwise.

-r x,y

Comma separated x and y resolution in DPI (default: 300,300).

-w width

Printable width (in inches) (default: 8.27).

-h height

Printable height (in inches) (default: 11.69).

-f

Fit file to page if too large.

-B height

Set the minimum band height (e.g. 32).

-M memory

Sets the maximum band memory (e.g. 655360).

-W width

Page width for EPUB layout.

-H height

Page height for EPUB layout.

-S size

Font size for EPUB layout.

-U filename

File name of user stylesheet for EPUB layout

-X

Disable document styles for EPUB layout

-A level

Set anti-aliasing level.

  • 0: off.

  • 2: 4 levels.

  • 4: 16 levels.

  • 8: 256 levels.

-A graphics level / text level

Independently set the anti-aliasing levels for graphics and text.

e.g. -A 0/4.

[pages]

A comma separated list of page numbers and ranges.

Example usage #1:

This will render a raster file from page one of the input file “mupdf_explored.pdf”. The output file will be called “test.ppm”, have a clockwise rotation and specific graphics/text anti-aliasing applied.

muraster -o test.ppm -R clockwise -A 0/8 mupdf_explored.pdf 1

mutool

Note

Run mutool without any arguments for summary usage.

For rendering and converting documents there are three commands available:

This is the more customizable tool, but also has a more difficult set of command line options. It is primarily used for rendering a document to image files.

This tool is used for converting documents into other formats, and is easier to use.

This is a debugging tool used for printing a trace of the graphics device calls on a page.


There are also several tools specifically for working with PDF files:

A tool for displaying the internal objects in a PDF file.

Extract images and embedded font resources.

Rewrite PDF files. Used to fix broken files, or to make a PDF file human editable.

Merge pages from multiple input files into a new PDF.

Divide pages of a PDF into pieces that can be printed and merged into a large poster.

Create a new PDF file from a text file with graphics commands.

List, verify, and sign digital signatures in PDF files.

Prints details about objects on each page in a PDF file.

Prints the size and rotation of each page in a PDF. Provides information about MediaBox, ArtBox, etc. for each page in a PDF file.

This command allows you to make a modified version of a PDF with content that falls inside or outside of defined boxes removed.

This command generates a report on the exact usage of operators and space within a PDF file.

This command changes the colorspace of a PDF file.

This command changes the colorspace of a PDF file.

This command decodes/encodes barcodes.

A tool for running JavaScript programs with access to the MuPDF library functions.

See the JavaScript API for more.