| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 |
- Metadata-Version: 2.4
- Name: pypdf
- Version: 6.9.2
- Summary: A pure-python PDF library capable of splitting, merging, cropping, and transforming PDF files
- Author-email: Mathieu Fenniak <biziqe@mathieu.fenniak.net>
- Maintainer: stefan6419846
- Maintainer-email: Martin Thoma <info@martin-thoma.de>
- Requires-Python: >=3.9
- Description-Content-Type: text/markdown
- License-Expression: BSD-3-Clause
- Classifier: Development Status :: 5 - Production/Stable
- Classifier: Intended Audience :: Developers
- Classifier: Programming Language :: Python :: 3
- Classifier: Programming Language :: Python :: 3 :: Only
- Classifier: Programming Language :: Python :: 3.9
- Classifier: Programming Language :: Python :: 3.10
- Classifier: Programming Language :: Python :: 3.11
- Classifier: Programming Language :: Python :: 3.12
- Classifier: Programming Language :: Python :: 3.13
- Classifier: Programming Language :: Python :: 3.14
- Classifier: Operating System :: OS Independent
- Classifier: Topic :: Software Development :: Libraries :: Python Modules
- Classifier: Typing :: Typed
- License-File: LICENSE
- Requires-Dist: typing_extensions >= 4.0; python_version < '3.11'
- Requires-Dist: cryptography ; extra == "crypto"
- Requires-Dist: PyCryptodome ; extra == "cryptodome"
- Requires-Dist: flit ; extra == "dev"
- Requires-Dist: pip-tools ; extra == "dev"
- Requires-Dist: pre-commit ; extra == "dev"
- Requires-Dist: pytest-cov ; extra == "dev"
- Requires-Dist: pytest-socket ; extra == "dev"
- Requires-Dist: pytest-timeout ; extra == "dev"
- Requires-Dist: pytest-xdist ; extra == "dev"
- Requires-Dist: wheel ; extra == "dev"
- Requires-Dist: myst_parser ; extra == "docs"
- Requires-Dist: sphinx ; extra == "docs"
- Requires-Dist: sphinx_rtd_theme ; extra == "docs"
- Requires-Dist: cryptography ; extra == "full"
- Requires-Dist: Pillow>=8.0.0 ; extra == "full"
- Requires-Dist: Pillow>=8.0.0 ; extra == "image"
- Project-URL: Bug Reports, https://github.com/py-pdf/pypdf/issues
- Project-URL: Changelog, https://pypdf.readthedocs.io/en/latest/meta/CHANGELOG.html
- Project-URL: Documentation, https://pypdf.readthedocs.io/en/latest/
- Project-URL: Source, https://github.com/py-pdf/pypdf
- Provides-Extra: crypto
- Provides-Extra: cryptodome
- Provides-Extra: dev
- Provides-Extra: docs
- Provides-Extra: full
- Provides-Extra: image
- [](https://badge.fury.io/py/pypdf)
- [](https://pypi.org/project/pypdf/)
- [](https://pypdf.readthedocs.io/en/stable/)
- [](https://github.com/py-pdf/pypdf)
- [](https://codecov.io/gh/py-pdf/pypdf)
- # pypdf
- pypdf is a free and open-source pure-python PDF library capable of splitting,
- [merging](https://pypdf.readthedocs.io/en/stable/user/merging-pdfs.html),
- [cropping, and transforming](https://pypdf.readthedocs.io/en/stable/user/cropping-and-transforming.html)
- the pages of PDF files. It can also add
- custom data, viewing options, and
- [passwords](https://pypdf.readthedocs.io/en/stable/user/encryption-decryption.html)
- to PDF files. pypdf can
- [retrieve text](https://pypdf.readthedocs.io/en/stable/user/extract-text.html)
- and
- [metadata](https://pypdf.readthedocs.io/en/stable/user/metadata.html)
- from PDFs as well.
- See [pdfly](https://github.com/py-pdf/pdfly) for a CLI application that uses pypdf to interact with PDFs.
- ## Installation
- Install pypdf using pip:
- ```
- pip install pypdf
- ```
- For using pypdf with AES encryption or decryption, install extra dependencies:
- ```
- pip install pypdf[crypto]
- ```
- > **NOTE**: `pypdf` 3.1.0 and above include significant improvements compared to
- > previous versions. Please refer to [the migration
- > guide](https://pypdf.readthedocs.io/en/latest/user/migration-1-to-2.html) for
- > more information.
- ## Usage
- ```python
- from pypdf import PdfReader
- reader = PdfReader("example.pdf")
- number_of_pages = len(reader.pages)
- page = reader.pages[0]
- text = page.extract_text()
- ```
- pypdf can do a lot more, e.g. splitting, merging, reading and creating annotations, decrypting and encrypting. Check out the
- [documentation](https://pypdf.readthedocs.io/en/stable/) for additional usage
- examples!
- For questions and answers, visit
- [StackOverflow](https://stackoverflow.com/questions/tagged/pypdf)
- (tagged with [pypdf](https://stackoverflow.com/questions/tagged/pypdf)).
- ## Contributions
- Maintaining pypdf is a collaborative effort. You can support the project by
- writing documentation, helping to narrow down issues, and submitting code.
- See the [CONTRIBUTING.md](https://github.com/py-pdf/pypdf/blob/main/CONTRIBUTING.md) file for more information.
- ### Q&A
- The experience pypdf users have covers the whole range from beginner to expert. You can contribute to the pypdf community by answering questions
- on [StackOverflow](https://stackoverflow.com/questions/tagged/pypdf),
- helping in [discussions](https://github.com/py-pdf/pypdf/discussions),
- and asking users who report issues for [MCVE](https://stackoverflow.com/help/minimal-reproducible-example)'s (Code + example PDF!).
- ### Issues
- A good bug ticket includes a MCVE - a minimal complete verifiable example.
- For pypdf, this means that you must upload a PDF that causes the bug to occur
- as well as the code you're executing with all of the output. Use
- `print(pypdf.__version__)` to tell us which version you're using.
- ### Code
- All code contributions are welcome, but smaller ones have a better chance to
- get included in a timely manner. Adding unit tests for new features or test
- cases for bugs you've fixed help us to ensure that the Pull Request (PR) is fine.
- pypdf includes a test suite which can be executed with `pytest`:
- ```bash
- $ pytest
- ===================== test session starts =====================
- platform linux -- Python 3.6.15, pytest-7.0.1, pluggy-1.0.0
- rootdir: /home/moose/GitHub/Martin/pypdf
- plugins: cov-3.0.0
- collected 233 items
- tests/test_basic_features.py .. [ 0%]
- tests/test_constants.py . [ 1%]
- tests/test_filters.py .................x..... [ 11%]
- tests/test_generic.py ................................. [ 25%]
- ............. [ 30%]
- tests/test_javascript.py .. [ 31%]
- tests/test_merger.py . [ 32%]
- tests/test_page.py ......................... [ 42%]
- tests/test_pagerange.py ................ [ 49%]
- tests/test_papersizes.py .................. [ 57%]
- tests/test_reader.py .................................. [ 72%]
- ............... [ 78%]
- tests/test_utils.py .................... [ 87%]
- tests/test_workflows.py .......... [ 91%]
- tests/test_writer.py ................. [ 98%]
- tests/test_xmp.py ... [100%]
- ========== 232 passed, 1 xfailed, 1 warning in 4.52s ==========
- ```
|