pypdf es una biblioteca de PDF pura de Python gratuita y de código abierto capaz de dividir, fusionar, recortar y transformar las páginas de archivos PDF. También puede agregar datos personalizados, opciones de visualización y contraseñas a archivos PDF. pypdf también puede recuperar texto y metadatos de archivos PDF.
Consulte pdfly para ver una aplicación CLI que utiliza pypdf para interactuar con archivos PDF.
Instale pypdf usando pip:
pip install pypdf
Para usar pypdf con cifrado o descifrado AES, instale dependencias adicionales:
pip install pypdf[crypto]
NOTA :
pypdf
3.1.0 y superiores incluyen mejoras significativas en comparación con versiones anteriores. Consulte la guía de migración para obtener más información.
from pypdf import PdfReader
reader = PdfReader ( "example.pdf" )
number_of_pages = len ( reader . pages )
page = reader . pages [ 0 ]
text = page . extract_text ()
pypdf puede hacer mucho más, por ejemplo, dividir, fusionar, leer y crear anotaciones, descifrar y cifrar, y más. ¡Consulte la documentación para ver ejemplos de uso adicionales!
Para preguntas y respuestas, visite StackOverflow (etiquetado con pypdf).
Mantener pypdf es un esfuerzo colaborativo. Puede respaldar el proyecto escribiendo documentación, ayudando a reducir los problemas y enviando código. Consulte el archivo CONTRIBUTING.md para obtener más información.
La experiencia que tienen los usuarios de pypdf cubre toda la gama, desde principiantes que desean hacer su vida más fácil hasta expertos que desarrollaron software antes de que existiera PDF. Puede contribuir a la comunidad de pypdf respondiendo preguntas en StackOverflow, ayudando en debates y preguntando a los usuarios que informan problemas para MCVE (¡Código + PDF de ejemplo!).
Un buen ticket de error incluye un MCVE, un ejemplo mínimo completo y verificable. Para pypdf, esto significa que debes cargar un PDF que provoque el error, así como el código que estás ejecutando con todo el resultado. Utilice print(pypdf.__version__)
para indicarnos qué versión está utilizando.
Todas las contribuciones de código son bienvenidas, pero las más pequeñas tienen más posibilidades de ser incluidas de manera oportuna. Agregar pruebas unitarias para nuevas funciones o casos de prueba para errores que haya solucionado nos ayuda a garantizar que la solicitud de extracción (PR) esté bien.
pypdf incluye un conjunto de pruebas que se puede ejecutar con pytest
:
$ 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 ==========