pypdf is a free and open source pure-python PDF library capable of splitting, merging, cropping, and transforming the pages of PDF files. It can also add custom data, viewing options, and passwords to PDF files. pypdf can retrieve text and metadata from PDFs as well.
You can contribute to pypdf on GitHub.
.. toctree:: :caption: User Guide :maxdepth: 1 user/installation user/migration-1-to-2 user/robustness user/suppress-warnings user/metadata user/extract-text user/extract-images user/extract-attachments user/encryption-decryption user/merging-pdfs user/cropping-and-transforming user/add-watermark user/reading-pdf-annotations user/adding-pdf-annotations user/forms user/streaming-data user/file-size user/pdf-version-support
.. toctree:: :caption: API Reference :maxdepth: 1 modules/PdfReader modules/PdfWriter modules/PdfMerger modules/PageObject modules/Transformation modules/DocumentInformation modules/XmpInformation modules/Destination modules/RectangleObject modules/Field modules/PageRange modules/AnnotationBuilder modules/Fit modules/PaperSize
.. toctree:: :caption: Developer Guide :maxdepth: 1 dev/intro dev/pdf-format dev/cmaps dev/deprecations dev/documentation dev/testing
.. toctree:: :caption: About pypdf :maxdepth: 1 meta/CHANGELOG meta/changelog-v1 meta/project-governance meta/history meta/CONTRIBUTORS meta/comparisons meta/faq