• This repository has been archived on 15/Jan/2022
  • Stars
    star
    149
  • Rank 248,619 (Top 5 %)
  • Language SWIG
  • License
    GNU General Publi...
  • Created almost 5 years ago
  • Updated over 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Packaging of pymupdf for Debian

PyMuPDF 1.17.4

logo

Release date: July 31, 2020

Travis-CI: Build Status

On PyPI since August 2016:

Authors

Introduction

This is version 1.17.4 of PyMuPDF, a Python binding with support for MuPDF 1.17.* - "a lightweight PDF, XPS, and E-book viewer".

MuPDF can access files in PDF, XPS, OpenXPS, CBZ, EPUB and FB2 (e-books) formats, and it is known for its top performance and high rendering quality.

With PyMuPDF you can access files with extensions like ".pdf", ".xps", ".oxps", ".cbz", ".fb2" or ".epub". In addition, about 10 popular image formats can also be opened and handled like documents.

Usage and Documentation

For all supported document types (i.e. including images) you can

  • decrypt the document
  • access meta information, links and bookmarks
  • render pages in raster formats (PNG and some others), or the vector format SVG
  • search for text
  • extract text and images
  • convert to other formats: PDF, (X)HTML, XML, JSON, text

To some degree, PyMuPDF can therefore be used as an image converter: it can read a range of input formats and can produce Portable Network Graphics (PNG), Portable Anymaps (PNM, etc.), Portable Arbitrary Maps (PAM), Adobe Postscript and Adobe Photoshop documents, making the use of other graphics packages obselete in these cases. But interfacing with e.g. PIL/Pillow for image input and output is easy as well.

PDF documents can be created, joined or split up. Pages can be inserted, deleted, re-arranged or modified in many ways (including annotations and form fields).

  • Images and fonts can be extracted or inserted.

  • Embedded files are fully supported.

  • PDFs can be reformatted to support double-sided printing, posterizing, applying logos or watermarks

  • Password protection is fully supported: decryption, encryption, encryption method selection, permmission level and user / owner password setting.

  • Low-level PDF structures can be accessed and modified.

  • PyMuPDF can also be used as a module in the command line using "python -m fitz ...". This is a versatile utility, which we will further develop going forward. It currently supports PDF document

    • encryption / decryption / optimization
    • creating sub-documents
    • document joining
    • image / font extraction
    • full support of embedded files.

Have a look at the basic demos, the examples (which contain complete, working programs), and the recipes section of our Wiki sidebar, which contains more than a dozen of guides in How-To-style.

Our documentation, written using Sphinx, is available in various formats from the following sources. It currently is a combination of a reference guide and a user manual. For a quick start look at the tutorial and the recipes chapters.

  • You can view it online at Read the Docs. This site also provides download options for zipped HTML and PDF.
  • Find a Windows help file here.

Installation

For the major Windows and (thanks to our user @jbarlow83!) Mac OSX or Linux versions we offer wheels in the download section of PyPI. This includes Python 2.7 and version Python 3.5 through 3.8.

For other Python versions or operating systems you need to generate PyMuPDF yourself as follows. This should work for all platforms which support Python and MuPDF. In any case you need the development version of Python.

To do this, you must download and generate MuPDF. This process depends very much on your system. For most platforms, the MuPDF source contains prepared procedures for achieving this. Please observe the following general steps:

  • Be sure to download the official MuPDF source release from here.

  • Do not use MuPDF's GitHub repo. It contains their current development source, which is not compatible with this PyMuPDF version.

  • This repo's fitz folder contains one or more files whose names start with a single underscore "_". These files contain configuration data and hotfixes. Each one must be copy-renamed to its correct target location inside the MuPDF source that you have downloaded, before you generate MuPDF. Currently, these files are:

    • fitz configuration file _config.h copy-replace to: mupdf/include/mupdf/fitz/config.h. It contains configuration data like e.g. which fonts to support.

    • Now MuPDF can be generated.

  • Since PyMuPDF v1.14.17, the sources provided in this repository no longer contain the interface files fitz.py and fitz.wrap.c - they are instead generated "on the fly" by setup.py using the interface generator SWIG. So you need SWIG being installed on your system. Please refer to issue #312 for some background.

    • PyMuPDF wheels have been generated using SWIG v4.0.1.
  • If you do not use SWIG, please download the sources from PyPI - they continue to contain those generated files, so installation should work like any other Python extension generation on your system.

Once this is done, adjust directories in setup.py and run python setup.py install.

The following sections contain further comments for some platforms.

Ubuntu

Our users (thanks to @gileadslostson and @jbarlow83!) have documented their MuPDF installation experiences from sources in this Wiki page.

OSX

First, install the MuPDF headers and libraries, which are provided by mupdf-tools: brew install mupdf-tools.

Then you might need to export ARCHFLAGS='-arch x86_64', since libmupdf.a is for x86_64 only.

Finally, please double check setup.py before building. Update include_dirs and library_dirs if necessary.

MS Windows

If you are looking to make your own binary, consult this Wiki page. It explains how to use Visual Studio for generating MuPDF in quite some detail.

Earlier Versions

Earlier versions are available in the releases directory.

License

PyMuPDF is distributed under GNU GPL V3. Because you will implicitely also be using MuPDF, its license GNU AFFERO GPL V3 applies as well. Copies of both are included in this repository.

Contact

Please submit questions, comments or issues here, or directly contact the authors via their e-mail addresses.

More Repositories

1

kobo-ja-dict-enhance

Enhance built-in Japanese dictionaries from Kobo with English definitions
Perl
426
star
2

cinnadock-p2

For of the Cinnadock Plus plugin to update it to current Cinnamon
JavaScript
421
star
3

debian-gwaei

C
419
star
4

debian-graph

Representing Debian UDD in a graph database
Perl
419
star
5

jfontmaps

dvipdfmx map files and support programs for Japanese font setup
Perl
418
star
6

piwigopress

Piwigo-Wordpress integration
PHP
418
star
7

build-tlptexlive

scripts and patches for building tlptexlive
Shell
418
star
8

debian-speg

Python
418
star
9

eagloss

multi script chinese glossary
TeX
418
star
10

debian-pycson

Python
417
star
11

debian-mu

C++
417
star
12

debian-xxhash

C
416
star
13

pgf-blur

Development of pg-blur package
TeX
415
star
14

nautilus-sendto-scripts

Development of a nautilus-sendto extension that allows sending to user-configurable scripts
Gettext Catalog
415
star
15

slick-google-map-plugin

Free Google map Wordpress plugin
PHP
413
star
16

ptex2pdf

convert Japanese TeX documents to pdf
Lua
413
star
17

texlive-rewrite

Rewrite of some core scripts in TeX Live from shell to perl
Perl
411
star
18

rfkill-applet

general rfkill applet for the gnome panel written in python
Python
409
star
19

sony-control-center

Fork of the sony-f11-vaio-control-center to work with newer kernels and with all Sony laptops supported by the sony-laptop kernel module.
C++
409
star
20

sony-laptop-zseries

adapted kernel module for zseries laptops
C
409
star
21

tlptexlive-root

packaging stuff for tlptexlive
Perl
408
star
22

tlmgr-electron-react

tlmgr gui using electron and react
JavaScript
408
star
23

okular-debian

packaging okular for debian
C++
163
star
24

elixir-debian

Debian packaging of Elixir
Elixir
157
star
25

acme-debian

Debian packaging of python acme
Python
157
star
26

certbot-debian

Debian packaging of certbot
Python
156
star
27

qpdfview-debian

Debian packaging of qpdfview
HTML
151
star
28

mupdf-debian

packaging of mupdf for debian
C
150
star
29

rspamd-debian

debian packaging of rspamd
C
149
star
30

susi-assistant

SUSI Smart Assistant
Python
109
star
31

rssguard-debian

Debian packaging of RSS Guard
C++
6
star