MuPDF is a library that for parsing and rendering several page-based document formats including PDF, XPS, and ePub. It contains both a graphics library called Fitz along with document-specific renderers that use Fitz as their rendering engine.
This library is used by
Notes
Documentation for the library is at: http://mupdf.com/docs/.
MuPDF uses the prefix fz_
(short for Fitz) as the namespace for its symbols.
Since MuPDF is written in C, it does not have language-level exception handling
support. Instead it implements library-specific macros that provide try ...
catch
catch functionality, namely fz_try ... fz_catch
.
When writing bindings to accomodate for this it is necessary to create wrappers so that exceptions in MuPDF are translated to exceptions in the host language.
Example of other programs that have bindings:
koreader
- https://github.com/koreader/koreader-base/blob/master/ffi/mupdf.lua
- https://github.com/koreader/koreader-base/blob/master/ffi-cdecl/mupdf_decl.c
- https://github.com/koreader/koreader-base/blob/master/wrap-mupdf.h
- https://github.com/koreader/koreader-base/blob/master/ffi/mupdf_h.lua
PyMuPDF
More info