934 lines
40 KiB
Plaintext
934 lines
40 KiB
Plaintext
|
-------------------------------------------------------------------
|
|||
|
Mon May 12 10:44:03 UTC 2025 - Markéta Machová <mmachova@suse.com>
|
|||
|
|
|||
|
- Convert to pip-based build
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Fri Aug 25 14:08:04 UTC 2023 - ecsos <ecsos@opensuse.org>
|
|||
|
|
|||
|
- Add %{?sle15_python_module_pythons}
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Thu Oct 27 21:04:36 UTC 2022 - Yogalakshmi Arunachalam <yarunachalam@suse.com>
|
|||
|
|
|||
|
- Update to version 2.11.1
|
|||
|
Bug Fixes (BUG)
|
|||
|
* td matrix (#1373)
|
|||
|
* Cope with cmap from #1322 (#1372)
|
|||
|
Robustness (ROB)
|
|||
|
* Cope with str returned from get_data in cmap (#1380)
|
|||
|
Full Changelog: https://github.com/py-pdf/PyPDF2/compare/2.11.0…2.11.1
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Wed Oct 12 02:36:06 UTC 2022 - Yogalakshmi Arunachalam <yarunachalam@suse.com>
|
|||
|
|
|||
|
- Update to version 2.11.0
|
|||
|
* New Features (ENH)
|
|||
|
Addition of optional visitor-functions in extract_text() (#1252)
|
|||
|
Add metadata.creation_date and modification_date (#1364)
|
|||
|
Add PageObject.images attribute (#1330)
|
|||
|
* Bug Fixes (BUG)
|
|||
|
Lookup index in _xobj_to_image can be ByteStringObject (#1366)
|
|||
|
‘IndexError: index out of range’ when using extract_text (#1361)
|
|||
|
Errors in transfer_rotation_to_content() (#1356)
|
|||
|
* Robustness (ROB)
|
|||
|
Ensure update_page_form_field_values does not fail if no fields (#1346)
|
|||
|
Full Changelog: https://github.com/py-pdf/PyPDF2/compare/2.10.9…2.11.0
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Wed Sep 7 18:19:10 UTC 2022 - Yogalakshmi Arunachalam <yarunachalam@suse.com>
|
|||
|
|
|||
|
- Spec changes:
|
|||
|
Changed the source to github
|
|||
|
Renamed CHANGELOG to CHANGELOG.md
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Wed Sep 7 16:36:36 UTC 2022 - Yogalakshmi Arunachalam <yarunachalam@suse.com>
|
|||
|
|
|||
|
- Update to version 2.6.0:
|
|||
|
New Features (ENH):
|
|||
|
- Add color and font_format to PdfReader.outlines[i] (#1104)
|
|||
|
- Extract Text Enhancement (whitespaces) (#1084)
|
|||
|
Bug Fixes (BUG):
|
|||
|
- Use `build_destination` for named destination outlines (#1128)
|
|||
|
- Avoid a crash when a ToUnicode CMap has an empty dstString in beginbfchar (#1118)
|
|||
|
- Prevent deduplication of PageObject (#1105)
|
|||
|
- None-check in DictionaryObject.read_from_stream (#1113)
|
|||
|
- Avoid IndexError in _cmap.parse_to_unicode (#1110)
|
|||
|
Documentation (DOC): - Explanation for git submodule - Watermark and stamp (#1095) Maintenance (MAINT):
|
|||
|
- Text extraction improvements (#1126)
|
|||
|
- Destination.color returns ArrayObject instead of tuple as fallback (#1119)
|
|||
|
- Use add_bookmark_destination in add_bookmark (#1100)
|
|||
|
- Use add_bookmark_destination in add_bookmark_dict (#1099)
|
|||
|
Testing (TST):
|
|||
|
- Remove xfail from test_outline_title_issue_1121
|
|||
|
- Add test for arab text (#1127)
|
|||
|
- Add xfail for decryption fail (#1125)
|
|||
|
- Add xfail test for IndexError when extracting text (#1124)
|
|||
|
- Add MCVE showing outline title issue (#1123)
|
|||
|
Code Style (STY):
|
|||
|
- Apply black and isort
|
|||
|
- Use IntFlag for permissions_flag / update_page_form_field_values (#1094)
|
|||
|
- Simplify code (#1101)
|
|||
|
|
|||
|
- Update to version 2.5.0:
|
|||
|
New Features (ENH):
|
|||
|
- Add PageObject._get_fonts (#1083)
|
|||
|
- Add support for indexed color spaces / BitsPerComponent for decoding PNGs (#1067)
|
|||
|
Performance Improvements (PI):
|
|||
|
- Use iterative DFS in PdfWriter._sweep_indirect_references (#1072)
|
|||
|
Bug Fixes (BUG):
|
|||
|
- Let Page.scale also scale the crop-/trim-/bleed-/artbox (#1066)
|
|||
|
- Column default for CCITTFaxDecode (#1079)
|
|||
|
Robustness (ROB):
|
|||
|
- Guard against None-value in _get_outlines (#1060)
|
|||
|
Documentation (DOC):
|
|||
|
- Stamps and watermarks (#1082)
|
|||
|
- OCR vs PDF text extraction (#1081)
|
|||
|
- Python Version support
|
|||
|
- Formatting of CHANGELOG
|
|||
|
Developer Experience (DEV):
|
|||
|
- Cache downloaded files (#1070)
|
|||
|
- Speed-up for CI (#1069)
|
|||
|
Maintenance (MAINT):
|
|||
|
- Set page.rotate(angle: int) (#1092)
|
|||
|
- Issue #416 was fixed by #1015 (#1078)
|
|||
|
Testing (TST):
|
|||
|
- Image extraction (#1080)
|
|||
|
- Image extraction (#1077)
|
|||
|
Code Style (STY):
|
|||
|
- Apply black
|
|||
|
- Typo in Changelog
|
|||
|
|
|||
|
- Update to version 2.4.2:
|
|||
|
New Features (ENH):
|
|||
|
- Add PdfReader.xfa attribute (#1026)
|
|||
|
Bug Fixes (BUG):
|
|||
|
- Wrong page inserted when PdfMerger.merge is done (#1063)
|
|||
|
- Resolve IndirectObject when it refers to a free entry (#1054)
|
|||
|
Developer Experience (DEV):
|
|||
|
- Added {posargs} to tox.ini (#1055)
|
|||
|
Maintenance (MAINT):
|
|||
|
- Remove PyPDF2._utils.bytes_type (#1053)
|
|||
|
Testing (TST):
|
|||
|
- Scale page (indirect rect object) (#1057)
|
|||
|
- Simplify pathlib PdfReader test (#1056)
|
|||
|
- IndexError of VirtualList (#1052)
|
|||
|
- Invalid XML in xmp information (#1051)
|
|||
|
- No pycryptodome (#1050)
|
|||
|
- Increase test coverage (#1045)
|
|||
|
Code Style (STY):
|
|||
|
- DOC of compress_content_streams (#1061)
|
|||
|
- Minimize diff for #879 (#1049)
|
|||
|
|
|||
|
- Update to version 2.4.1:
|
|||
|
New Features (ENH):
|
|||
|
- Add writer.pdf_header property (getter and setter) (#1038)
|
|||
|
Performance Improvements (PI):
|
|||
|
- Remove b_ call in FloatObject.write_to_stream (#1044)
|
|||
|
- Check duplicate objects in writer._sweep_indirect_references (#207)
|
|||
|
Documentation (DOC):
|
|||
|
- How to surppress exceptions/warnings/log messages (#1037)
|
|||
|
- Remove hyphen from lossless (#1041)
|
|||
|
- Compression of content streams (#1040)
|
|||
|
- Fix inconsistent variable names in add-watermark.md (#1039)
|
|||
|
- File size reduction
|
|||
|
- Add CHANGELOG to the rendered docs (#1023)
|
|||
|
Maintenance (MAINT):
|
|||
|
- Handle XML error when reading XmpInformation (#1030)
|
|||
|
- Deduplicate Code / add mutmut config (#1022)
|
|||
|
Code Style (STY):
|
|||
|
- Use unnecessary one-line function / class attribute (#1043)
|
|||
|
- Docstring formatting (#1033)
|
|||
|
|
|||
|
- Update to version 2.4.0:
|
|||
|
New Features (ENH):
|
|||
|
- Support R6 decrypting (#1015)
|
|||
|
- Add PdfReader.pdf_header (#1013)
|
|||
|
Performance Improvements (PI):
|
|||
|
- Remove ord_ calls (#1014)
|
|||
|
Bug Fixes (BUG):
|
|||
|
- Fix missing page for bookmark (#1016)
|
|||
|
Robustness (ROB):
|
|||
|
- Deal with invalid Destinations (#1028)
|
|||
|
Documentation (DOC):
|
|||
|
- get_form_text_fields does not extract dropdown data (#1029)
|
|||
|
- Adjust PdfWriter.add_uri docstring
|
|||
|
- Mention crypto extra_requires for installation (#1017)
|
|||
|
Developer Experience (DEV):
|
|||
|
- Use /n line endings everywhere (#1027)
|
|||
|
- Adjust string formatting to be able to use mutmut (#1020)
|
|||
|
- Update Bug report template
|
|||
|
|
|||
|
- Update to version 2.3.1:
|
|||
|
BUG: Forgot to add the interal `_codecs` subpackage.
|
|||
|
|
|||
|
- Update to version 2.3.0:
|
|||
|
The highlight of this release is improved support for file encryption
|
|||
|
(AES-128 and AES-256, R5 only). See #749 for the amazing work of
|
|||
|
@exiledkingcc confetti_ball Thank you hugs
|
|||
|
Deprecations (DEP):
|
|||
|
- Rename names to be PEP8-compliant (#967)
|
|||
|
- `PdfWriter.get_page`: the pageNumber parameter is renamed to page_number
|
|||
|
- `PyPDF2.filters`:
|
|||
|
* For all classes, a parameter rename: decodeParms ➔ decode_parms
|
|||
|
* decodeStreamData ➔ decode_stream_data
|
|||
|
- `PyPDF2.xmp`:
|
|||
|
* XmpInformation.rdfRoot ➔ XmpInformation.rdf_root
|
|||
|
* XmpInformation.xmp_createDate ➔ XmpInformation.xmp_create_date
|
|||
|
* XmpInformation.xmp_creatorTool ➔ XmpInformation.xmp_creator_tool
|
|||
|
* XmpInformation.xmp_metadataDate ➔ XmpInformation.xmp_metadata_date
|
|||
|
* XmpInformation.xmp_modifyDate ➔ XmpInformation.xmp_modify_date
|
|||
|
* XmpInformation.xmpMetadata ➔ XmpInformation.xmp_metadata
|
|||
|
* XmpInformation.xmpmm_documentId ➔ XmpInformation.xmpmm_document_id
|
|||
|
* XmpInformation.xmpmm_instanceId ➔ XmpInformation.xmpmm_instance_id
|
|||
|
- `PyPDF2.generic`:
|
|||
|
* readHexStringFromStream ➔ read_hex_string_from_stream
|
|||
|
* initializeFromDictionary ➔ initialize_from_dictionary
|
|||
|
* createStringObject ➔ create_string_object
|
|||
|
* TreeObject.hasChildren ➔ TreeObject.has_children
|
|||
|
* TreeObject.emptyTree ➔ TreeObject.empty_tree
|
|||
|
New Features (ENH):
|
|||
|
- Add decrypt support for V5 and AES-128, AES-256 (R5 only) (#749)
|
|||
|
Robustness (ROB):
|
|||
|
- Fix corrupted (wrongly) linear PDF (#1008)
|
|||
|
Maintenance (MAINT):
|
|||
|
- Move PDF_Samples folder into ressources
|
|||
|
- Fix typos (#1007)
|
|||
|
Testing (TST):
|
|||
|
- Improve encryption/decryption test (#1009)
|
|||
|
- Add merger test cases with real PDFs (#1006)
|
|||
|
- Add mutmut config
|
|||
|
Code Style (STY):
|
|||
|
- Put pure data mappings in separate files (#1005)
|
|||
|
- Make encryption module private, apply pre-commit (#1010)
|
|||
|
|
|||
|
- Update to version 2.2.1:
|
|||
|
Performance Improvements (PI):
|
|||
|
- Remove b_ calls (#992, #986)
|
|||
|
- Apply improvements to _utils suggested by perflint (#993)
|
|||
|
Robustness (ROB):
|
|||
|
- utf-16-be\' codec can\'t decode (...) (#995)
|
|||
|
Documentation (DOC):
|
|||
|
- Remove reference to Scripts (#987)
|
|||
|
Developer Experience (DEV):
|
|||
|
- Fix type annotations for add_bookmarks (#1000)
|
|||
|
Testing (TST):
|
|||
|
- Add test for PdfMerger (#1001)
|
|||
|
- Add tests for XMP information (#996)
|
|||
|
- reader.get_fields / zlib issue / LZW decode issue (#1004)
|
|||
|
- reader.get_fields with report generation (#1002)
|
|||
|
- Improve test coverage by extracting texts (#998)
|
|||
|
Code Style (STY):
|
|||
|
- Apply fixes suggested by pylint (#999)
|
|||
|
|
|||
|
- Update to version 2.2.0:
|
|||
|
The 2.2.0 release improves text extraction again via (#969):
|
|||
|
* Improvements around /Encoding / /ToUnicode
|
|||
|
* Extraction of CMaps improved
|
|||
|
* Fallback for font def missing
|
|||
|
* Support for /Identity-H and /Identity-V: utf-16-be
|
|||
|
* Support for /GB-EUC-H / /GB-EUC-V / GBp/c-EUC-H / /GBpc-EUC-V (beta release for evaluation)
|
|||
|
* Arabic (for evaluation)
|
|||
|
* Whitespace extraction improvements
|
|||
|
Those changes should mainly improve the text extraction for non-ASCII alphabets,
|
|||
|
e.g. Russian / Chinese / Japanese / Korean / Arabic.
|
|||
|
|
|||
|
- Update to version 2.1.1:
|
|||
|
New Features (ENH):
|
|||
|
- Add support for pathlib as input for PdfReader (#979)
|
|||
|
Performance Improvements (PI):
|
|||
|
- Optimize read_next_end_line (#646)
|
|||
|
Bug Fixes (BUG):
|
|||
|
- Adobe Acrobat \'Would you like to save this file?\' (#970)
|
|||
|
Documentation (DOC):
|
|||
|
- Notes on annotations (#982)
|
|||
|
- Who uses PyPDF2
|
|||
|
- intendet \xe2\x9e\x94 in robustness page (#958)
|
|||
|
Maintenance (MAINT):
|
|||
|
- pre-commit / requirements.txt updates (#977)
|
|||
|
- Mark read_next_end_line as deprecated (#965)
|
|||
|
- Export `PageObject` in PyPDF2 root (#960)
|
|||
|
Testing (TST):
|
|||
|
- Add MCVE of issue #416 (#980)
|
|||
|
- FlateDecode.decode decodeParms (#964)
|
|||
|
- Xmp module (#962)
|
|||
|
- utils.paeth_predictor (#959)
|
|||
|
Code Style (STY):
|
|||
|
- Use more tuples and list/dict comprehensions (#976)
|
|||
|
|
|||
|
- Update to version 2.1.0:
|
|||
|
The highlight of the 2.1.0 release is the most massive improvement to the
|
|||
|
text extraction capabilities of PyPDF2 since 2016 partying_faceconfetti_ball A very big thank you goes
|
|||
|
to [pubpub-zz](https://github.com/pubpub-zz) who took a lot of time and
|
|||
|
knowledge about the PDF format to finally get those improvements into PyPDF2.
|
|||
|
Thank you hugsgreen_heart
|
|||
|
In case the new function causes any issues, you can use `_extract_text_old`
|
|||
|
for the old functionality. Please also open a bug ticket in that case.
|
|||
|
There were several people who have attempted to bring similar improvements to
|
|||
|
PyPDF2. All of those were valuable. The main reason why they didn't get merged
|
|||
|
is the big amount of open PRs / issues. pubpub-zz was the most comprehensive
|
|||
|
PR which also incorporated the latest changes of PyPDF2 2.0.0.
|
|||
|
Thank you to [VictorCarlquist](https://github.com/VictorCarlquist) for #858 and
|
|||
|
[asabramo](https://github.com/asabramo) for #464 hugs
|
|||
|
New Features (ENH):
|
|||
|
- Massive text extraction improvement (#924). Closed many open issues:
|
|||
|
- Exceptions / missing spaces in extract_text() method (#17) man_dancing
|
|||
|
- Whitespace issues in extract_text() (#42) woman_dancing
|
|||
|
- pypdf2 reads the hifenated words in a new line (#246)
|
|||
|
- PyPDF2 failing to read unicode character (#37)
|
|||
|
- Unable to read bullets (#230)
|
|||
|
- ExtractText yields nothing for apparently good PDF (#168) tada
|
|||
|
- Encoding issue in extract_text() (#235)
|
|||
|
- extractText() doesn't work on Chinese PDF (#252)
|
|||
|
- encoding error (#260)
|
|||
|
- Trouble with apostophes in names in text "O'Doul" (#384)
|
|||
|
- extract_text works for some PDF files, but not the others (#437)
|
|||
|
- Euro sign not being recognized by extractText (#443)
|
|||
|
- Failed extracting text from French texts (#524)
|
|||
|
- extract_text doesn't extract ligatures correctly (#598)
|
|||
|
- reading spanish text - mark convert issue (#635)
|
|||
|
- Read PDF changed from text to random symbols (#654)
|
|||
|
- .extractText() reads / as 1. (#789)
|
|||
|
- Update glyphlist (#947) - inspired by #464
|
|||
|
- Allow adding PageRange objects (#948)
|
|||
|
Bug Fixes (BUG):
|
|||
|
- Delete .python-version file (#944)
|
|||
|
- Compare StreamObject.decoded_self with None (#931)
|
|||
|
Robustness (ROB):
|
|||
|
- Fix some conversion errors on non conform PDF (#932)
|
|||
|
Documentation (DOC):
|
|||
|
- Elaborate on PDF text extraction difficulties (#939)
|
|||
|
- Add logo (#942)
|
|||
|
- rotate vs Transformation().rotate (#937)
|
|||
|
- Example how to use PyPDF2 with AWS S3 (#938)
|
|||
|
- How to deprecate (#930)
|
|||
|
- Fix typos on robustness page (#935)
|
|||
|
- Remove scripts (pdfcat) from docs (#934)
|
|||
|
Developer Experience (DEV):
|
|||
|
- Ignore .python-version file
|
|||
|
- Mark deprecated code with no-cover (#943)
|
|||
|
- Automatically create Github releases from tags (#870)
|
|||
|
Testing (TST):
|
|||
|
- Text extraction for non-latin alphabets (#954)
|
|||
|
- Ignore PdfReadWarning in benchmark (#949)
|
|||
|
- writer.remove_text (#946)
|
|||
|
- Add test for Tree and _security (#945)
|
|||
|
Code Style (STY):
|
|||
|
- black, isort, Flake8, splitting buildCharMap (#950)
|
|||
|
|
|||
|
- Update to version 2.0.0:
|
|||
|
The 2.0.0 release of PyPDF2 includes three core changes:
|
|||
|
1. Dropping support for Python 3.5 and older.
|
|||
|
2. Introducing type annotations.
|
|||
|
3. Interface changes, mostly to have PEP8-compliant names
|
|||
|
We introduced a [deprecation process](#930)
|
|||
|
that hopefully helps users to avoid unexpected breaking changes.
|
|||
|
Breaking Changes(DEP):
|
|||
|
- PyPDF2 2.0 requires Python 3.6+. Python 2.7 and 3.5 support were dropped.
|
|||
|
- PdfFileReader: The "warndest" parameter was removed
|
|||
|
- PdfFileReader and PdfFileMerger no longer have the `overwriteWarnings`
|
|||
|
parameter. The new behavior is `overwriteWarnings=False`.
|
|||
|
- merger: OutlinesObject was removed without replacement.
|
|||
|
- merger.py ➔ _merger.py: You must import PdfFileMerger from PyPDF2 directly.
|
|||
|
- utils:
|
|||
|
* `ConvertFunctionsToVirtualList` was removed
|
|||
|
* `formatWarning` was removed
|
|||
|
* `isInt(obj)`: Use `instance(obj, int)` instead
|
|||
|
* `u_(s)`: Use `s` directly
|
|||
|
* `chr_(c)`: Use `chr(c)` instead
|
|||
|
* `barray(b)`: Use `bytearray(b)` instead
|
|||
|
* `isBytes(b)`: Use `instance(b, type(bytes()))` instead
|
|||
|
* `xrange_fn`: Use `range` instead
|
|||
|
* `string_type`: Use `str` instead
|
|||
|
* `isString(s)`: Use `instance(s, str)` instead
|
|||
|
* `_basestring`: Use `str` instead
|
|||
|
* All Exceptions are now in `PyPDF2.errors`:
|
|||
|
- PageSizeNotDefinedError
|
|||
|
- PdfReadError
|
|||
|
- PdfReadWarning
|
|||
|
- PyPdfError
|
|||
|
-`PyPDF2.pdf` (the `pdf` module) no longer exists. The contents were moved with
|
|||
|
the library. You should most likely import directly from `PyPDF2` instead.
|
|||
|
The `RectangleObject` is in `PyPDF2.generic`.
|
|||
|
-The `Resources`, `Scripts`, and `Tests` will no longer be part of the distribution
|
|||
|
files on PyPI. This should have little to no impact on most people. The
|
|||
|
`Tests` are renamed to `tests`, the `Resources` are renamed to `resources`.
|
|||
|
Both are still in the git repository. The `Scripts` are now in
|
|||
|
https://github.com/py-pdf/cpdf. `Sample_Code` was moved to the `docs`.
|
|||
|
For a full list of deprecated functions, please see the changelog of version 1.28.0.
|
|||
|
New Features (ENH):
|
|||
|
- Improve space setting for text extraction (#922)
|
|||
|
- Allow setting the decryption password in PdfReader.__init__ (#920)
|
|||
|
- Add Page.add_transformation (#883)
|
|||
|
Bug Fixes (BUG):
|
|||
|
- Fix error adding transformation to page without /Contents (#908)
|
|||
|
Robustness (ROB):
|
|||
|
- Cope with invalid length in streams (#861)
|
|||
|
Documentation (DOC):
|
|||
|
- Fix style of 1.25 and 1.27 patch notes (#927)
|
|||
|
- Transformation (#907)
|
|||
|
Developer Experience (DEV):
|
|||
|
- Create flake8 config file (#916)
|
|||
|
- Use relative imports (#875)
|
|||
|
Maintenance (MAINT):
|
|||
|
- Use Python 3.6 language features (#849)
|
|||
|
- Add wrapper function for PendingDeprecationWarnings (#928)
|
|||
|
- Use new PEP8 compliant names (#884)
|
|||
|
- Explicitly represent transformation matrix (#878)
|
|||
|
- Inline PAGE_RANGE_HELP string (#874)
|
|||
|
- Remove unnecessary generics imports (#873)
|
|||
|
- Remove star imports (#865)
|
|||
|
- merger.py ➔ _merger.py (#864)
|
|||
|
- Type annotations for all functions/methods (#854)
|
|||
|
- Add initial type support with mypy (#853)
|
|||
|
Testing (TST):
|
|||
|
- Regression test for xmp_metadata converter (#923)
|
|||
|
- Checkout submodule sample-files for benchmark
|
|||
|
- Add text extracting performance benchmark
|
|||
|
- Use new PyPDF2 API in benchmark (#902)
|
|||
|
- Make test suite fail for uncaught warnings (#892)
|
|||
|
- Remove -OO testrun from CI (#901)
|
|||
|
- Improve tests for convert_to_int (#899)
|
|||
|
|
|||
|
- Update to version 1.28.4:
|
|||
|
Bug Fixes (BUG):
|
|||
|
- XmpInformation._converter_date was unusable (#921)
|
|||
|
- Update to version 1.28.3:
|
|||
|
Deprecations (DEP):
|
|||
|
- PEP8 renaming (#905)
|
|||
|
Bug Fixes (BUG):
|
|||
|
- XmpInformation missing method _getText (#917)
|
|||
|
- Fix PendingDeprecationWarning on _merge_page (#904)
|
|||
|
|
|||
|
- Update to version 1.28.2:
|
|||
|
Bug Fixes (BUG):
|
|||
|
- PendingDeprecationWarning for getContents (#893)
|
|||
|
- PendingDeprecationWarning on using PdfMerger (#891)
|
|||
|
- Update to version 1.28.1:
|
|||
|
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)
|
|||
|
|
|||
|
- Update to version 1.28.0:
|
|||
|
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)
|
|||
|
* 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
|
|||
|
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 (TODO: read vs get?)
|
|||
|
- cacheGetIndirectObject ➔ cache_get_indirect_object (TODO: public vs private?)
|
|||
|
- cacheIndirectObject ➔ cache_indirect_object (TODO: public vs private?)
|
|||
|
- 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
|
|||
|
- Update to version 1.27.12:
|
|||
|
Bug Fixes (BUG):
|
|||
|
- _rebuild_xref_table expects trailer to be a dict (#857)
|
|||
|
Documentation (DOC):
|
|||
|
- Security Policy
|
|||
|
|
|||
|
- Update to version 1.27.11:
|
|||
|
Bug Fixes (BUG):
|
|||
|
- Incorrectly issued xref warning/exception (#855)
|
|||
|
|
|||
|
- Update to version 1.27.10:
|
|||
|
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)
|
|||
|
|
|||
|
- Update to version 1.27.9:
|
|||
|
A change I would like to highlight is the performance improvement for
|
|||
|
large PDF files (#808) tada
|
|||
|
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)
|
|||
|
|
|||
|
- Update to version 1.27.8:
|
|||
|
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)
|
|||
|
- Update to version 1.27.7:
|
|||
|
Bug Fixes (BUG):
|
|||
|
- Import exceptions from PyPDF2.errors in PyPDF2.utils (#780)
|
|||
|
Code Style (STY):
|
|||
|
- Naming in 'make_changelog.py'
|
|||
|
- Update to version 1.27.6:
|
|||
|
Deprecations (DEP):
|
|||
|
- Remove support for Python 2.6 and older (#776)
|
|||
|
New Features (ENH):
|
|||
|
- Extract document permissions (#320)
|
|||
|
Bug Fixes (BUG):
|
|||
|
- Clip by trimBox when merging pages, which would otherwise be ignored (#240)
|
|||
|
- Add overwriteWarnings parameter PdfFileMerger (#243)
|
|||
|
- IndexError for getPage() of decryped file (#359)
|
|||
|
- Handle cases where decodeParms is an ArrayObject (#405)
|
|||
|
- Updated PDF fields don't show up when page is written (#412)
|
|||
|
- Set Linked Form Value (#414)
|
|||
|
- Fix zlib -5 error for corrupt files (#603)
|
|||
|
- Fix reading more than last1K for EOF (#642)
|
|||
|
- Acciental import
|
|||
|
Robustness (ROB):
|
|||
|
- Allow extra whitespace before "obj" in readObjectHeader (#567)
|
|||
|
Documentation (DOC):
|
|||
|
- Link to pdftoc in Sample_Code (#628)
|
|||
|
- Working with annotations (#764)
|
|||
|
- Structure history
|
|||
|
Developer Experience (DEV):
|
|||
|
- Add issue templates (#765)
|
|||
|
- Add tool to generate changelog
|
|||
|
Maintenance (MAINT):
|
|||
|
- Use grouped constants instead of string literals (#745)
|
|||
|
- Add error module (#768)
|
|||
|
- Use decorators for @staticmethod (#775)
|
|||
|
- Split long functions (#777)
|
|||
|
Testing (TST):
|
|||
|
- Run tests in CI once with -OO Flags (#770)
|
|||
|
- Filling out forms (#771)
|
|||
|
- Add tests for Writer (#772)
|
|||
|
- Error cases (#773)
|
|||
|
- Check Error messages (#769)
|
|||
|
- Regression test for issue #88
|
|||
|
- Regression test for issue #327
|
|||
|
Code Style (STY):
|
|||
|
- Make variable naming more consistent in test
|
|||
|
- Update to version 1.27.5:
|
|||
|
Security (SEC):
|
|||
|
- ContentStream_readInlineImage had potential infinite loop (#740)
|
|||
|
Bug fixes (BUG):
|
|||
|
- Fix merging encrypted files (#757)
|
|||
|
- CCITTFaxDecode decodeParms can be an ArrayObject (#756)
|
|||
|
Robustness improvements (ROBUST):
|
|||
|
- title sometimes None (#744)
|
|||
|
Documentation (DOC):
|
|||
|
- Adjust short description of the package
|
|||
|
Tests and Test setup (TST):
|
|||
|
- Rewrite JS tests from unittest to pytest (#746)
|
|||
|
- Increase Test coverage, mainly with filters (#756)
|
|||
|
- Add test for inline images (#758)
|
|||
|
Developer Experience Improvements (DEV):
|
|||
|
- Remove unused Travis-CI configuration (#747)
|
|||
|
- Show code coverage (#754, #755)
|
|||
|
- Add mutmut (#760)
|
|||
|
Miscellaneous:
|
|||
|
- STY: Closing file handles, explicit exports, ... (#743)
|
|||
|
|
|||
|
- Update to version 1.27.4:
|
|||
|
Bug fixes (BUG):
|
|||
|
- Guard formatting of __init__.__doc__ string (#738)
|
|||
|
Packaging (PKG):
|
|||
|
- Add more precise license field to setup (#733)
|
|||
|
Testing (TST):
|
|||
|
- Add test for issue #297
|
|||
|
Miscellaneous:
|
|||
|
- DOC: Miscallenious ➔ Miscellaneous (Typo)
|
|||
|
- TST: Fix CI triggering (master ➔ main) (#739)
|
|||
|
- STY: Fix various style issues (#742)
|
|||
|
|
|||
|
- Update to version 1.27.3:
|
|||
|
- PKG: Make Tests not a subpackage (#728)
|
|||
|
- BUG: Fix ASCII85Decode.decode assertion (#729)
|
|||
|
- BUG: Error in Chinese character encoding (#463)
|
|||
|
- BUG: Code duplication in Scripts/2-up.py
|
|||
|
- ROBUST: Guard 'obj.writeToStream' with 'if obj is not None'
|
|||
|
- ROBUST: Ignore a /Prev entry with the value 0 in the trailer
|
|||
|
- MAINT: Remove Sample_Code (#726)
|
|||
|
- TST: Close file handle in test_writer (#722)
|
|||
|
- TST: Fix test_get_images (#730)
|
|||
|
- DEV: Make tox use pytest and add more Python versions (#721)
|
|||
|
- DOC: Many (#720, #723-725, #469)
|
|||
|
|
|||
|
- Update to version 1.27.2:
|
|||
|
- Add Scripts (including `pdfcat`), Resources, Tests, and Sample_Code back to
|
|||
|
PyPDF2. It was removed by accident in 1.27.0, but might get removed with 2.0.0
|
|||
|
See #718 for discussion
|
|||
|
|
|||
|
- Update to version 1.27.0:
|
|||
|
Features:
|
|||
|
- Add alpha channel support for png files in Script (#614)
|
|||
|
Bug fixes (BUG):
|
|||
|
- Fix formatWarning for filename without slash (#612)
|
|||
|
- Add whitespace between words for extractText() (#569, #334)
|
|||
|
- "invalid escape sequence" SyntaxError (#522)
|
|||
|
- Avoid error when printing warning in pythonw (#486)
|
|||
|
- Stream operations can be List or Dict (#665)
|
|||
|
Documentation (DOC):
|
|||
|
- Added Scripts/pdf-image-extractor.py
|
|||
|
- Documentation improvements (#550, #538, #324, #426, #394)
|
|||
|
Tests and Test setup (TST):
|
|||
|
- Add Github Action which automatically run unit tests via pytest and
|
|||
|
static code analysis with Flake8 (#660)
|
|||
|
- Add several unit tests (#661, #663)
|
|||
|
- Add .coveragerc to create coverage reports
|
|||
|
Developer Experience Improvements (DEV):
|
|||
|
- Pre commit: Developers can now `pre-commit install` to avoid tiny issues
|
|||
|
like trailing whitespaces
|
|||
|
Miscallenious:
|
|||
|
- Add the LICENSE file to the distributed packages (#288)
|
|||
|
- Use setuptools instead of distutils (#599)
|
|||
|
- Improvements for the PyPI page (#644)
|
|||
|
- Python 3 changes (#504, #366)
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Mon Oct 21 22:55:54 UTC 2019 - Simon Lees <simon.lees@suse.com>
|
|||
|
|
|||
|
- change the copyright to 2019
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Thu Dec 6 13:22:02 UTC 2018 - Tomáš Chvátal <tchvatal@suse.com>
|
|||
|
|
|||
|
- Fix fdupes call
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Tue Dec 4 12:52:37 UTC 2018 - Matej Cepl <mcepl@suse.com>
|
|||
|
|
|||
|
- Remove superfluous devel dependency for noarch package
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Mon May 14 10:11:40 UTC 2018 - tchvatal@suse.com
|
|||
|
|
|||
|
- Use license macro
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Thu Apr 20 04:22:33 UTC 2017 - sflees@suse.de
|
|||
|
|
|||
|
- Convert to single spec
|
|||
|
- Update to version 1.26.0
|
|||
|
* 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)
|
|||
|
- Changes for 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 generic.py. 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)
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Mon May 11 18:00:56 UTC 2015 - benoit.monin@gmx.fr
|
|||
|
|
|||
|
- update to version 1.24:
|
|||
|
* 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
|
|||
|
- additional changes from version 1.23:
|
|||
|
* Documentation now available at http://pythonhosted.org//PyPDF2
|
|||
|
* Bugfix in pagerange.py 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 utils.py 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
|
|||
|
- additional changes from version 1.22:
|
|||
|
* 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
|
|||
|
- additional changes from version 1.21:
|
|||
|
* 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
|
|||
|
warnings.py 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 pdf.py and pagerange.py 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)
|
|||
|
- additional changes from version 1.20:
|
|||
|
* 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
|
|||
|
- remove unwanted shebang in pagerange.py
|
|||
|
- rename README to README.md: changed upstream
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Tue Dec 3 10:52:18 UTC 2013 - cfarrell@suse.com
|
|||
|
|
|||
|
- license update: BSD-3-Clause
|
|||
|
See LICENSE
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Sun Nov 24 21:44:43 UTC 2013 - p.drouand@gmail.com
|
|||
|
|
|||
|
- Initial release ( version 1.19 )
|
|||
|
|