PyPDF2 v1.28.0 Release Notes

Release Date: 2022-05-22 // almost 2 years ago
  • ๐Ÿš€ This release adds a lot of deprecation warnings in preparation of the ๐Ÿš€ PyPDF2 2.0.0 release. The changes are mostly using snake_case function-, method-, and variable-names as well as using properties instead of getter-methods.

    ๐Ÿšง Maintenance (MAINT):

    • ๐Ÿšš Remove IronPython Fallback for zlib (#868)

    Full Changelog

    ๐Ÿ—„ Deprecations (DEP)

    • ๐Ÿ‘‰ Make the PyPDF2.utils module private
    • ๐Ÿ“‡ Rename of core classes:
      • PdfFileReader โž” PdfReader
      • PdfFileWriter โž” PdfWriter
      • PdfFileMerger โž” PdfMerger
    • ๐Ÿ‘‰ Use PEP8 conventions for function names and parameters
    • If a property and a getter-method are both present, use the property

    Details

    In many places:

    • getObject โž” get_object
    • writeToStream โž” write_to_stream
    • readFromStream โž” read_from_stream

    PyPDF2.generic

    • readObject โž” read_object
    • convertToInt โž” convert_to_int
    • DocumentInformation.getText โž” DocumentInformation._get_text : This method should typically not be used; please let me know if you need it.

    PdfReader class:

    • reader.getPage(pageNumber) โž” reader.pages[page_number]
    • reader.getNumPages() / reader.numPages โž” len(reader.pages)
    • getDocumentInfo โž” metadata
    • flattenedPages attribute โž” flattened_pages
    • resolvedObjects attribute โž” resolved_objects
    • xrefIndex attribute โž” xref_index
    • getNamedDestinations / namedDestinations attribute โž” named_destinations
    • getPageLayout / pageLayout โž” page_layout attribute
    • getPageMode / pageMode โž” page_mode attribute
    • getIsEncrypted / isEncrypted โž” is_encrypted attribute
    • getOutlines โž” get_outlines
    • readObjectHeader โž” read_object_header
    • cacheGetIndirectObject โž” cache_get_indirect_object
    • cacheIndirectObject โž” cache_indirect_object
    • getDestinationPageNumber โž” get_destination_page_number
    • readNextEndLine โž” read_next_end_line
    • _zeroXref โž” _zero_xref
    • _authenticateUserPassword โž” _authenticate_user_password
    • _pageId2Num attribute โž” _page_id2num
    • _buildDestination โž” _build_destination
    • _buildOutline โž” _build_outline
    • _getPageNumberByIndirect(indirectRef) โž” _get_page_number_by_indirect(indirect_ref)
    • _getObjectFromStream โž” _get_object_from_stream
    • _decryptObject โž” _decrypt_object
    • _flatten(..., indirectRef) โž” _flatten(..., indirect_ref)
    • _buildField โž” _build_field
    • _checkKids โž” _check_kids
    • _writeField โž” _write_field
    • _write_field(..., fieldAttributes) โž” _write_field(..., field_attributes)
    • _read_xref_subsections(..., getEntry, ...) โž” _read_xref_subsections(..., get_entry, ...)

    PdfWriter class:

    • writer.getPage(pageNumber) โž” writer.pages[page_number]
    • writer.getNumPages() โž” len(writer.pages)
    • addMetadata โž” add_metadata
    • addPage โž” add_page
    • addBlankPage โž” add_blank_page
    • addAttachment(fname, fdata) โž” add_attachment(filename, data)
    • insertPage โž” insert_page
    • insertBlankPage โž” insert_blank_page
    • appendPagesFromReader โž” append_pages_from_reader
    • updatePageFormFieldValues โž” update_page_form_field_values
    • cloneReaderDocumentRoot โž” clone_reader_document_root
    • cloneDocumentFromReader โž” clone_document_from_reader
    • getReference โž” get_reference
    • getOutlineRoot โž” get_outline_root
    • getNamedDestRoot โž” get_named_dest_root
    • addBookmarkDestination โž” add_bookmark_destination
    • addBookmarkDict โž” add_bookmark_dict
    • addBookmark โž” add_bookmark
    • addNamedDestinationObject โž” add_named_destination_object
    • addNamedDestination โž” add_named_destination
    • removeLinks โž” remove_links
    • removeImages(ignoreByteStringObject) โž” remove_images(ignore_byte_string_object)
    • removeText(ignoreByteStringObject) โž” remove_text(ignore_byte_string_object)
    • addURI โž” add_uri
    • addLink โž” add_link
    • getPage(pageNumber) โž” get_page(page_number)
    • getPageLayout / setPageLayout / pageLayout โž” page_layout attribute
    • getPageMode / setPageMode / pageMode โž” page_mode attribute
    • _addObject โž” _add_object
    • _addPage โž” _add_page
    • _sweepIndirectReferences โž” _sweep_indirect_references

    PdfMerger class

    • __init__ parameter: strict=True โž” strict=False (the PdfFileMerger still has the old default)
    • addMetadata โž” add_metadata
    • addNamedDestination โž” add_named_destination
    • setPageLayout โž” set_page_layout
    • setPageMode โž” set_page_mode

    Page class:

    • artBox / bleedBox/ cropBox/ mediaBox / trimBox โž” artbox / bleedbox/ cropbox/ mediabox / trimbox
      • getWidth, getHeight โž” width / height
      • getLowerLeft_x / getUpperLeft_x โž” left
      • getUpperRight_x / getLowerRight_x โž” right
      • getLowerLeft_y / getLowerRight_y โž” bottom
      • getUpperRight_y / getUpperLeft_y โž” top
      • getLowerLeft / setLowerLeft โž” lower_left property
      • upperRight โž” upper_right
    • mergePage โž” merge_page
    • rotateClockwise / rotateCounterClockwise โž” rotate_clockwise
    • _mergeResources โž” _merge_resources
    • _contentStreamRename โž” _content_stream_rename
    • _pushPopGS โž” _push_pop_gs
    • _addTransformationMatrix โž” _add_transformation_matrix
    • _mergePage โž” _merge_page

    XmpInformation class:

    • getElement(..., aboutUri, ...) โž” get_element(..., about_uri, ...)
    • getNodesInNamespace(..., aboutUri, ...) โž” get_nodes_in_namespace(..., aboutUri, ...)
    • _getText โž” _get_text

    utils.py:

    • matrixMultiply โž” matrix_multiply
    • RC4_encrypt is moved to the security module