All Versions
73
Latest Version
Avg Release Cycle
7 days
Latest Release
494 days ago

Changelog History
Page 4

  • v1.28.3 Changes

    May 28, 2022

    ๐Ÿ—„ Deprecations (DEP)

    • PEP8 renaming (#905)

    ๐Ÿ› Bug Fixes (BUG)

    • XmpInformation missing method _getText (#917)
    • ๐Ÿ”€ Fix PendingDeprecationWarning on _merge_page (#904)

    Full Changelog

  • v1.28.2 Changes

    May 23, 2022

    ๐Ÿ› Bug Fixes (BUG)

    • ๐Ÿ—„ PendingDeprecationWarning for getContents (#893)
    • ๐Ÿ—„ PendingDeprecationWarning on using PdfMerger (#891)

    Full Changelog

  • v1.28.1 Changes

    May 22, 2022

    ๐Ÿ› Bug Fixes (BUG)

    • ๐Ÿ—„ Incorrectly show deprecation warnings on internal usage (#887)

    ๐Ÿšง Maintenance (MAINT)

    • ๐Ÿ—„ Add stacklevel=2 to deprecation warnings (#889)
    • ๐Ÿšš Remove duplicate warnings imports (#888)

    Full Changelog

  • v1.28.0 Changes

    May 22, 2022

    ๐Ÿš€ 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
  • v1.27.12 Changes

    May 02, 2022

    ๐Ÿ› Bug Fixes (BUG)

    • _rebuild_xref_table expects trailer to be a dict (#857)

    ๐Ÿ“š Documentation (DOC)

    • ๐Ÿ”’ Security Policy

    Full Changelog

  • v1.27.11 Changes

    May 02, 2022

    ๐Ÿ› Bug Fixes (BUG)

    • โš  Incorrectly issued xref warning/exception (#855)

    Full Changelog

  • v1.27.10 Changes

    May 01, 2022

    Robustness (ROB)

    • Handle missing destinations in reader (#840)
    • warn-only in readStringFromStream (#837)
    • Fix corruption in startxref or xref table (#788 and #830)

    ๐Ÿ“š Documentation (DOC)

    • Project Governance (#799)
    • History of PyPDF2
    • ๐Ÿ‘ PDF feature/version support (#816)
    • ๐Ÿ“œ More details on text parsing issues (#815)

    Developer Experience (DEV)

    • Add benchmark command to Makefile
    • Ignore IronPython parts for code coverage (#826)

    ๐Ÿšง Maintenance (MAINT)

    • Split pdf module (#836)
    • ๐Ÿ“œ Separated CCITTFax param parsing/decoding (#841)
    • โšก๏ธ Update requirements files

    โœ… Testing (TST)

    • โœ… Use external repository for larger/more PDFs for testing (#820)
    • โœ… Swap incorrect test names (#838)
    • โœ… Add test for PdfFileReader and page properties (#835)
    • โœ… Add tests for PyPDF2.generic (#831)
    • โœ… Add tests for utils, form fields, PageRange (#827)
    • โœ… Add test for ASCII85Decode (#825)
    • โœ… Add test for FlateDecode (#823)
    • โœ… Add test for filters.ASCIIHexDecode (#822)

    ๐Ÿ’… Code Style (STY)

    • Apply pre-commit (black, isort) + use snake_case variables (#832)
    • ๐Ÿšš Remove debug code (#828)
    • ๐Ÿ“š Documentation, Variable names (#839)

    Full Changelog

  • v1.27.9 Changes

    April 24, 2022

    ๐ŸŽ A change I would like to highlight is the performance improvement for large PDF files (#808) ๐ŸŽ‰

    ๐Ÿ†• New Features (ENH)

    • Add papersizes (#800)
    • Allow setting permission flags when encrypting (#803)
    • Allow setting form field flags (#802)

    ๐Ÿ› Bug Fixes (BUG)

    • TypeError in xmp._converter_date (#813)
    • Improve spacing for text extraction (#806)
    • Fix PDFDocEncoding Character Set (#809)

    Robustness (ROB)

    • Use null ID when encrypted but no ID given (#812)
    • Handle recursion error (#804)

    ๐Ÿ“š Documentation (DOC)

    • CMaps (#811)
    • ๐Ÿ›  The PDF Format + commit prefixes (#810)
    • Add compression example (#792)

    Developer Experience (DEV)

    • ๐ŸŽ Add Benchmark for Performance Testing (#781)

    ๐Ÿšง Maintenance (MAINT)

    • Validate PDF magic byte in strict mode (#814)
    • Make PdfFileMerger.addBookmark() behave life PdfFileWriters' (#339)
    • ๐Ÿ“œ Quadratic runtime while parsing reduced to linear (#808)

    โœ… Testing (TST)

    • Newlines in text extraction (#807)

    Full Changelog

  • v1.27.8 Changes

    April 21, 2022

    ๐Ÿ› Bug Fixes (BUG)

    • Use 1MB as offset for readNextEndLine (#321)
    • 'PdfFileWriter' object has no attribute 'stream' (#787)

    Robustness (ROB)

    • Invalid float object; use 0 as fallback (#782)

    ๐Ÿ“š Documentation (DOC)

    • Robustness (#785)

    Full Changelog

  • v1.27.7 Changes

    April 19, 2022

    ๐Ÿ› Bug Fixes (BUG)

    • Import exceptions from PyPDF2.errors in PyPDF2.utils (#780)

    ๐Ÿ’… Code Style (STY)

    • Naming in 'make_changelog.py'