'Frequently-Asked Questions' for the PyPDF2 project

Table of Contents

How is PyPDF2 licensed?

Short answer: BSD-style. Do with PyPDF2 as you like, and don't bring others down.

Longer version: ...

Why PyPDF2? Why doesn't everyone everywhere just use libraries coded in Java or C?

Why does PyPDF2 interest you? The same or a similar reason likely applies to other PyPDF2 users. E-mail us with a few words about how you use PyPDF2.

How is PyPDF2 related to pyPdf?

As the PyPDF2 home page explains, PyPDF2 is a fork from the no-longer-maintained pyPdf approved by the latter's founder.

I'm a long-time pyPdf user. How hard is migration to PyPDF2?

Migration to PyPDF2 from pyPdf should be utterly transparent. If anything gets in your way, we want to know. Your Python code needn't change at all, unless you choose to program in a customized location for the PyPDF2 module. In particular, ...

Where do I learn more about PyPDF2?

The PyPDF2 home page is a good place to look for more information.

Is there a mailing list?

How does PyPDF2 compare to [various competitors, complements, and so on]?

As mentioned already, PyPDF2 aims to be a strict successor of pyPdf: it does everything pyPdf does, but it also does more.

Where ... deal with construction of PDF pages, PyPDF2 is largely about metadata: PyPDF2 manages metadata, merges PDF instances, and so on.

[various libraries]


What development is underway now?

[Consolidation of Py2 and Py3 sources.]

[Bates-stamper, Plone/Zope, ...]

With what versions of Python does PyPDF2 work?

As Matthew writes, "... the intention is for PyPDF2 to work with Python 2 as well as Python 3."

In January 2014, the main branch works with 2.6-2.7 and 3.1-3.3 [and maybe 2.5?]. Notice that 1.19--the latest in PyPI as of this writing--(mostly) did not work with 3.x.

I often merge [concatenate] various PDF instances, and my application 'craters' with certain files produced by {AutoCAD, my departmental scanner, ...}, even though the original files display OK. What do I do now?

Crucial ideas we want you to know: