Biblioteca de anotaciones PDF de Python de código abierto
Pruebe esta biblioteca Python gratuita y de código abierto para agregar y extraer anotaciones de documentos PDF.
¿Qué es pypdf?
Pypdf es una biblioteca de Python gratuita y de código abierto conocida por su conjunto diverso de funciones para manejar documentos PDF en un entorno Python. Esta herramienta resulta útil para diversas manipulaciones de PDF, pero en esta revisión nos centraremos en sus funciones relacionadas con las anotaciones.
Las características notables de pypdf relacionadas con las anotaciones incluyen:
- Agregar anotaciones de formas: Podemos dibujar formas como líneas, rectángulos, elipses y polígonos, etc. en áreas específicas de páginas PDF como anotaciones.
- Agregar anotaciones de texto: Podemos agregar anotaciones de texto a posiciones específicas de páginas PDF.
- Agregar anotaciones de vínculos: también es posible agregar anotaciones de vínculos (como un hipervínculo) a documentos PDF.
- Extracción de anotaciones: Podemos iterar y extraer información sobre todas las anotaciones en un documento PDF utilizando la biblioteca pypdf.
Empezando con pypdf
Necesita la versión 3.6.0 o superior de Python para instalar y utilizar pypdf. Entonces, primero instale Python y luego use los siguientes comandos para instalar pypdf en su máquina usando pip y entorno virtual.
linux
python3 -m venv venv
source venv/bin/activate
pip install pypdf
Mac OS
python -m venv venv
source venv/bin/activate
pip install pypdf
ventanas
python3 -m venv venv
venv\Scripts\activate.bat
pip install pypdf
Agregar anotación rectangular a PDF
Podemos agregar anotaciones rectangulares a documentos PDF usando la biblioteca pypdf. Usaremos la clase Rectangle del módulo pypdf.annotations de la biblioteca pypdf para definir el rectángulo. Luego usaremos el método add_annotations de la clase PDFWriter para agregar anotaciones rectangulares al PDF.
Consulte el siguiente fragmento de código para obtener más detalles:
Producción
En la siguiente captura de pantalla, puede ver que se agrega un rectángulo para anotar la palabra Código Abierto:
Agregar anotación de texto a PDF
Creamos anotaciones de texto usando la clase Text del módulo pypdf.annotations de la biblioteca pypdf. Después de eso, podemos usar el método add_annotations de la clase PDFWriter de la biblioteca pypdf para agregar anotaciones al PDF. La anotación de texto se agrega como un ícono que se expande y muestra el texto cuando se hace clic en el ícono. Consulte el siguiente fragmento de código para obtener más detalles:
Producción
Como podemos ver en el screencast a continuación, el código anterior agrega un ícono al PDF en la posición especificada que muestra una anotación de texto cuando se hace clic en el ícono:
Agregar anotación de enlace a PDF
Las anotaciones de enlace se crean utilizando la clase Link del módulo pypdf.annotations. Sin embargo, el problema con la anotación del enlace es que simplemente agrega el enlace pero no es visible. Para solucionar este problema, incorporaremos un rectángulo usando la clase Rectangle del módulo pypdf.annotations como explicamos anteriormente. De esta manera, el usuario puede identificar visualmente la ubicación donde se agrega la anotación del enlace. Consulte el siguiente fragmento de código para una mejor comprensión:
Producción
Como podemos ver en el resultado, el rectángulo sirve como un área que, cuando se hace clic, redirige al usuario al enlace especificado.
Extraer anotaciones de PDF
Podemos extraer anotaciones de un PDF usando la biblioteca pypdf. Repetimos todas las anotaciones en las páginas PDF y luego usamos el método get_object para obtener el objeto de anotación. Luego extraemos información relevante del objeto. Consulte el siguiente fragmento de código para obtener más detalles:
Producción
Como podemos ver en la siguiente captura de pantalla, el programa ha devuelto el tipo de anotación y las coordenadas de las anotaciones en el documento PDF:
Conclusión
Pypdf permite a los desarrolladores de Python agregar diferentes tipos de anotaciones a archivos PDF y acceder a información esencial sobre las anotaciones, como su tipo y ubicación, lo que lo convierte en una opción práctica para tareas que requieren agregar anotaciones y extraer datos sobre las anotaciones.