All Versions
Latest Version
Avg Release Cycle
164 days
Latest Release
1984 days ago

Changelog History
Page 1

  • v1.26.0 Changes

    May 18, 2016
    • NOTE: Active maintenance on PyPDF2 is resuming after a hiatus

    • Fixed a bug where image resources where incorrectly overwritten when merging pages

    • Added dictionary for JavaScript actions to the root (louib)

    • Added unit tests for the JS functionality (louib)

    • Add more Python 3 compatibility when reading inline images (im2703 and (VyacheslavHashov)

    • Return NullObject instead of raising error when failing to resolve object (ctate)

    • Don't output warning for non-zeroed xref table when strict=False (BenRussert)

    • Remove extraneous zeroes from output formatting (speedplane)

    • Fix bug where reading an inline image would cut off prematurely in certain cases (speedplane)

    Patch 1.25.1, 2015-07-20

    • Fix bug when parsing inline images. Occurred when merging certain pages with inline images

    • Fixed type error when creating outlines by utilizing the isString() test

  • v1.25.1 Changes

    July 20, 2015

    Patch 1.25.1


    • πŸ›  Fix bug when parsing inline images. Occurred when merging
      certain pages with inline images
    • πŸ›  Fixed type error when creating outlines by utilizing the
      βœ… isString() test
  • v1.25 Changes

    July 07, 2015

    πŸ”– Version 1.25


    πŸ›  BUGFIXES:
    • βž• Added Python 3 algorithm for ASCII85Decode. Fixes issue when
      reading reportlab-generated files with Py 3. _jerickbixly _
    • Recognize more escape sequence which would otherwise throw an
      exception. _manuelzs, robertsoakes _
    • πŸ›  Fixed overflow error in Occurred
      when reading a too-large int in Python 2. _by Raja Jamwal _
    • πŸ‘ Allow access to files which were encrypted with an empty
      password. Previously threw a "File has not been decrypted"
      exception. _Elena Williams _
    • Do not attempt to decode an empty data stream. Previously
      would cause an error in decode algorithms. _vladir _
    • πŸ›  Fixed some type issues specific to Py 2 or Py 3.
    • Fix issue when stream data begins with whitespace. _soloma83 _
    • Recognize abbreviated filter names. _AlmightyOatmeal and
      Matthew Weiss
    • Copy decryption key from PdfFileReader to PdfFileMerger.
      Allows usage of PdfFileMerger with encrypted files. _twolfson _
    • πŸ›  Fixed bug which occurred when a NameObject is present at end
      of a file stream. Threw a "Stream has ended unexpectedly"
      exception. _speedplane _
    πŸ”‹ FEATURES:
    • πŸŽ‰ Initial work on a test suite; to be expanded in future.
      Tests and Resources directory added, README updated _robertsoakes _
    • βž• Added document cloning methods to PdfFileWriter:
      πŸ‘― appendPagesFromReader, cloneReaderDocumentRoot, and
      cloneDocumentFromReader. See official documentation _robertsoakes _
    • βž• Added method for writing to form fields: updatePageFormFieldValues.
      πŸ“š This will be enhanced in the future. See official documentation
      _robertsoakes _
    • πŸ†• New addAttachment method. See documentation. Support for adding
      and extracting embedded files to be enhanced in the future
      _moshekaplan _
    • βž• Added methods to get page number of given PageObject or
      Destination: getPageNumber and getDestinationPageNumber.
      See documentation _mozbugbox _
    • Enhanced type handling _Brent Amrhein _
    • Enhanced exception handling in NameObject _sbywater _
    • Enhanced extractText method output _peircej _
    • πŸ‘ Better exception handling
    • Enhanced regex usage in NameObject class _speedplane _
  • v1.24 Changes

    December 31, 2014
    • Bugfixes for reading files in Python 3 (by Anthony Tuininga and pqqp)

    • Appropriate errors are now raised instead of infinite loops (by naure and Cyrus Vafadari)

    • Bugfix for parsing number tokens with leading spaces (by Maxim Kamenkov)

    • Don't crash on bad /Outlines reference (by eshellman)

    • Conform tabs/spaces and blank lines to PEP 8 standards

    • Utilize the readUntilRegex method when reading Number Objects (by Brendan Jurd)

    • More bugfixes for Python 3 and clearer exception handling

    • Fixed encoding issue in merger (with eshellman)

    • Created separate folder for scripts

  • v1.23 Changes

    August 11, 2014
    • Documentation now available at

    • Bugfix in for when init.doc has no value (by Vladir Cruz)

    • Fix typos in OutlinesObject().add() (by shilluc)

    • Re-added a missing return statement in a method

    • Corrected viewing mode names (by Jason Scheirer)

    • New PdfFileWriter method: addJS() (by vfigueiro)

    • New bookmark features: color, boldness, italics, and page fit (by Joshua Arnott)

    • New PdfFileReader method: getFields(). Used to extract field information from PDFs with interactive forms. See documentation for details

    • Converted README file to markdown format (by Stephen Bussard)

    • Several improvements to overall performance and efficiency (by mozbugbox)

    • Fixed a bug where geospatial information was not scaling along with its page

    • Fixed a type issue and a Python 3 issue in the decryption algorithms (with Francisco Vieira and koba-ninkigumi)

    • Fixed a bug causing an infinite loop in the ASCII 85 decoding algorithm (by madmaardigan)

    • Annotations (links, comment windows, etc.) are now preserved when pages are merged together

    • Used the Destination class in addLink() and addBookmark() so that the page fit option could be properly customized

  • v1.22 Changes

    May 29, 2014
    • Added .DS_Store to .gitignore (for Mac users) (by Steve Witham)

    • Removed init() implementation in NameObject (by Steve Witham)

    • Fixed bug (inf. loop) when merging pages in Python 3 (by commx)

    • Corrected error when calculating height in scaleTo()

    • Removed unnecessary code from DictionaryObject (by Georges Dubus)

    • Fixed bug where an exception was thrown upon reading a NULL string (by speedplane)

    • Allow string literals (non-unicode strings in Python 2) to be passed to PdfFileReader

    • Allow ConvertFunctionsToVirtualList to be indexed with slices and longs (in Python 2) (by Matt Gilson)

    • Major improvements and bugfixes to addLink() method (see documentation in source code) (by Henry Keiter)

    • General code clean-up and improvements (with Steve Witham and Henry Keiter)

    • Fixed bug that caused crash when comments are present at end of dictionary

  • v1.21 Changes

    April 21, 2014
    • Fix for when /Type isn't present in the Pages dictionary (by Rob1080)

    • More tolerance for extra whitespace in Indirect Objects

    • Improved Exception handling

    • Fixed error in getHeight() method (by Simon Kaempflein)

    • implement use of utils.string_type to resolve Py2-3 compatibility issues

    • Prevent exception for multiple definitions in a dictionary (with carlosfunk) (only when strict = False)

    • Fixed errors when parsing a slice using pdfcat on command line (by Steve Witham)

    • Tolerance for EOF markers within 1024 bytes of the actual end of the file (with David Wolever)

    • Added overwriteWarnings parameter to PdfFileReader constructor, if False PyPDF2 will NOT overwrite methods from Python's module with a custom implementation.

    • Fix NumberObject and NameObject constructors for compatibility with PyPy (RΓΌdiger Jungbeck, Xavier DuprΓ©, shezadkhan137, Steven Witham)

    • Utilize utils.Str in and to resolve type issues (by egbutter)

    • Improvements in implementing StringIO for Python 2 and BytesIO for Python 3 (by Xavier DuprΓ©)

    • Added /x00 to Whitespaces, defined utils.WHITESPACES to clarify code (by Maxim Kamenkov)

    • Bugfix for merging 3 or more resources with the same name (by lucky-user)

    • Improvements to Xref parsing algorithm (by speedplane)

  • v1.20 Changes

    January 27, 2014
    • Official Python 3+ support (with contributions from TWAC and cgammans) Support for Python versions 2.6 and 2.7 will be maintained

    • Command line concatenation (see pdfcat in sample code) (by Steve Witham)

    • New FAQ; link included in README

    • Allow more (although unnecessary) escape sequences

    • Prevent exception when reading a null object in decoding parameters

    • Corrected error in reading destination types (added a slash since they are name objects)

    • Corrected TypeError in scaleTo() method

    • addBookmark() method in PdfFileMerger now returns bookmark (so nested bookmarks can be created)

    • Additions to Sample Code and Sample PDFs

    • changes to allow 2up script to work (see sample code) (by Dylan McNamee)

    • changes to metadata encoding (by Chris Hiestand)

    • New methods for links: addLink() (by Enrico Lambertini) and removeLinks()

    • Bugfix to handle nested bookmarks correctly (by Jamie Lentin)

    • New methods removeImages() and removeText() available for PdfFileWriter (by Tien HaΓ―)

    • Exception handling for illegal characters in Name Objects

  • v1.19 Changes

    October 08, 2013

    πŸ›  BUGFIXES:

    • Removed pop in sweepIndirectReferences to prevent infinite loop (provided by ian-su-sirca)

    • Fixed bug caused by whitespace when parsing PDFs generated by AutoCad

    • Fixed a bug caused by reading a 'null' ASCII value in a dictionary object (primarily in PDFs generated by AutoCad).

    πŸ”‹ FEATURES:

    • Added new folders for PyPDF2 sample code and example PDFs; see README for each folder

    • Added a method for debugging purposes to show current location while parsing

    • Ability to create custom metadata (by jamma313)

    • Ability to access and customize document layout and view mode (by Joshua Arnott)


    • Added and corrected some documentation

    • Added some more warnings and exception messages

    • Removed old test/debugging code


    • More bugfixes (We have received many problematic PDFs via email, we will work with them)

    • Documentation - It's time for PyPDF2 to get its own documentation since it has grown much since the original pyPdf

    • A FAQ to answer common questions

  • v1.18 Changes

    August 19, 2013
    • Fixed a bug where older verions of objects were incorrectly added to the cache, resulting in outdated or missing pages, images, and other objects (from speedplane)

    • Fixed a bug in parsing the xref table where new xref values were overwritten; also cleaned up code (from speedplane)

    • New method mergeRotatedAroundPointPage which merges a page while rotating it around a point (from speedplane)

    • Updated Destination syntax to respect PDF 1.6 specifications (from jamma313)

    • Prevented infinite loop when a PdfFileReader object was instantiated with an empty file (from Jerome Nexedi)

    Other Changes: