Biblioteca d'anotacions PDF de codi obert Python
Proveu aquesta biblioteca de Python gratuïta i de codi obert per afegir i extreure anotacions de documents PDF.
Què és pypdf?
Pypdf és una biblioteca de Python gratuïta i de codi obert coneguda pel seu conjunt divers de funcions per gestionar documents PDF en un entorn Python. Aquesta eina és útil per a diverses manipulacions de PDF, però ens centrarem en les seves funcions relacionades amb les anotacions en aquesta revisió.
Les característiques notables de pypdf relacionades amb les anotacions inclouen:
- Afegir anotacions de formes: podem dibuixar formes com línies, rectangles, el·lipses i polígons, etc. en àrees específiques de pàgines PDF com a anotacions.
- Afegir anotacions de text: podem afegir anotacions de text a posicions específiques de pàgines PDF.
- Afegir anotacions d'enllaç: també és possible afegir anotacions d'enllaç (com un hiperenllaç) als documents PDF.
- Extreure anotacions: podem iterar i extreure informació sobre totes les anotacions d'un document PDF mitjançant la biblioteca pypdf.
Primers passos amb pypdf
Necessiteu la versió 3.6.0 o superior de Python per instal·lar i utilitzar pypdf. Per tant, primer instal·leu Python i després utilitzeu les ordres següents per instal·lar pypdf a la vostra màquina mitjançant pip i entorn virtual.
Linux
python3 -m venv venv
source venv/bin/activate
pip install pypdf
MacOS
python -m venv venv
source venv/bin/activate
pip install pypdf
Windows
python3 -m venv venv
venv\Scripts\activate.bat
pip install pypdf
Afegeix una anotació rectangular al PDF
Podem afegir anotacions rectangulars als documents PDF mitjançant la biblioteca pypdf. Utilitzarem la classe Rectangle del mòdul pypdf.annotations de la biblioteca pypdf per definir el rectangle. A continuació, utilitzarem el mètode add_annotations de la classe PDFWriter per afegir anotacions rectangulars al PDF.
Comproveu el fragment de codi següent per obtenir els detalls:
Sortida
A la captura de pantalla següent, podeu veure que s'afegeix un rectangle per anotar la paraula Open Source:
Afegeix una anotació de text al PDF
Creem anotacions de text utilitzant la classe Text del mòdul pypdf.annotations de la biblioteca pypdf. Després d'això, podem utilitzar el mètode add_annotations de la classe PDFWriter de la biblioteca pypdf per afegir anotacions al PDF. L'anotació de text s'afegeix com una icona que s'amplia i mostra el text quan es fa clic a la icona. Comproveu el fragment de codi següent per obtenir els detalls:
Sortida
Com podem veure a la pantalla següent, el codi anterior afegeix una icona al PDF a la posició especificada que mostra una anotació de text quan es fa clic a la icona:
Afegeix una anotació d'enllaç al PDF
Les anotacions d'enllaç es creen mitjançant la classe Enllaç del mòdul pypdf.annotations. Tanmateix, el problema amb l'anotació de l'enllaç és que només afegeix l'enllaç però no és visible. Per solucionar aquest problema, incorporarem un rectangle amb la classe Rectangle del mòdul pypdf.annotations tal com hem explicat anteriorment. D'aquesta manera, l'usuari pot identificar visualment la ubicació on s'afegeix l'anotació de l'enllaç. Comproveu el fragment de codi següent per a una millor comprensió:
Sortida
Com podem veure a la sortida, el rectangle serveix com a àrea que, quan es fa clic, redirigeix l'usuari a l'enllaç especificat.
Extreu anotacions del PDF
Podem extreure anotacions d'un PDF mitjançant la biblioteca pypdf. Recorrem totes les anotacions de les pàgines PDF i després fem servir el mètode get_object per obtenir l'objecte d'anotació. A continuació, extreim informació rellevant de l'objecte. Comproveu el fragment de codi següent per obtenir els detalls:
Sortida
Com podem veure a la captura de pantalla següent, el programa ha retornat el tipus d'anotació i les coordenades de les anotacions al document PDF:
Conclusió
Pypdf permet als desenvolupadors de Python afegir diferents tipus d'anotacions als PDF i accedir a informació essencial sobre les anotacions, com ara el seu tipus i ubicació, el que la converteix en una opció pràctica per a les tasques que requereixen afegir anotacions i extreure dades sobre anotacions.