MuPDF is a free and open-source softwareframework written in C that implements a PDF, XPS, and EPUB parsing and rendering engine. It is used primarily to render pages into bitmaps, but also provides support for other operations such as searching and listing the table of contents and hyperlinks. The focus of MuPDF is on speed, small code size, and high-quality anti-aliased rendering. Since the 1.2 release, MuPDF has optional support for interactive features such as form filling, JavaScript and transitions. The library ships with a rudimentary X11 and Windows viewer, and a set of command-line tools for batch rendering, examining the file structure, and rewriting files. Later versions also have a JavaScript interpreter that allows for running scripts to create and edit PDF files. A number of free software applications use MuPDF to render PDF documents, the most notable being Sumatra PDF. MuPDF is also available as a package for most Unix-like operating system distributions. Independent parties have ported the library to many platforms, including the Amazon Kindle, HP TouchPad, PlayStation Portable, Wii, and DOS.
History
In 2002, Tor Andersson started work on MuPDF based on the Libart rendering library by Raph Levien. After Artifex Software acquired the MuPDF project, the development focus shifted on writing a new moderngraphics library called Fitz. Fitz was originally intended as an R&D project to replace the aging Ghostscript graphics library, but has instead become the rendering engine powering MuPDF. In 2005, the first version of MuPDF with the new Fitz library was released. In 2009, Artifex Software filed a copyright infringement lawsuit against Palm, Inc. for violating their copyrights on MuPDF. At that time Artifex offered MuPDF dual-licensed, either under GPLv2 or under an proprietary license meant by Artifex for commercial use. When Palm included MuPDF in webOS and complied with GPLv2 by releasing the changed source code of the library, Artifex claimed that the GPL version would be unsuitable for "commercial use" as the complete, aggregated product would have to be placed under GPL. Artifex voluntarily dismissed the suit in 2011. In 2011, support for Microsoft's XPS was added, based on code from the GhostXPS library. Since February 2013, with the 1.2 release, licensing terms have changed from GNU General Public License to GNU Affero General Public License v3.