Библиотека с PDF анотации на Python с отворен код
Изпробвайте тази безплатна библиотека на Python с отворен код за добавяне и извличане на анотации от PDF документи.
Какво е pypdf?
Pypdf е безплатна библиотека на Python с отворен код, известна със своя разнообразен набор от функции за работа с PDF документи в среда на Python. Този инструмент наистина е полезен за различни манипулации на PDF файлове, но в този преглед ще се съсредоточим върху функциите, свързани с анотациите.
Забележителните характеристики на pypdf, свързани с анотациите, включват:
- Добавяне на анотации към фигури: Можем да рисуваме форми като линии, правоъгълници, елипси и многоъгълници и т.н. върху определени области на PDF страници като анотации.
- Добавяне на текстови анотации: Можем да добавяме текстови анотации към конкретни позиции на PDF страници.
- Добавяне на анотации към връзки: Възможно е също така да добавяте анотации към връзки (като хипервръзка) към PDF документи.
- Извличане на анотации: Можем да итерираме и извличаме информация за всички анотации в PDF документ с помощта на pypdf библиотека.
Първи стъпки с pypdf
Имате нужда от Python версия 3.6.0 или по-нова, за да инсталирате и използвате pypdf. И така, първо инсталирайте Python и след това използвайте командите по-долу, за да инсталирате pypdf на вашата машина, като използвате pip и виртуална среда.
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
Добавяне на правоъгълна анотация към PDF
Можем да добавяме правоъгълни анотации към PDF документи с помощта на библиотеката pypdf. Ще използваме класа Rectangle на модула pypdf.annotations от библиотеката pypdf, за да дефинираме правоъгълника. След това ще използваме метода add_annotations на класа PDFWriter, за да добавим правоъгълна анотация към PDF файла.
Проверете кодовия фрагмент по-долу за подробности:
Изход
На екранната снимка по-долу можете да видите, че правоъгълникът е добавен за анотиране на думата Отворен код:
Добавете текстова анотация към PDF
Ние създаваме текстови анотации, използвайки клас Text от модула pypdf.annotations на библиотеката pypdf. След това можем да използваме метода add_annotations на класа PDFWriter от библиотеката pypdf, за да добавим анотация към PDF файла. Текстовата анотация се добавя като икона, която се разширява и показва текста, когато се щракне върху иконата. Проверете кодовия фрагмент по-долу за подробности:
Изход
Както можем да видим в скрийнкаста по-долу, горният код добавя икона към PDF файла на посочена позиция, която показва текстова анотация, когато се щракне върху иконата:
Добавете анотация за връзка към PDF
Анотациите за връзки се създават с помощта на класа Link от модула pypdf.annotations. Проблемът с анотацията на връзката обаче е, че тя просто добавя връзката, но не се вижда. За да разрешим този проблем, ще включим правоъгълник, използвайки класа Rectangle от модула pypdf.annotations, както обяснихме по-рано. По този начин потребителят може визуално да идентифицира мястото, където е добавена анотацията за връзката. Проверете кодовия фрагмент по-долу за по-добро разбиране:
Изход
Както можем да видим в изхода, правоъгълникът служи като област, която при щракване пренасочва потребителя към посочената връзка.
Извличане на анотации от PDF
Можем да извлечем анотации от PDF с помощта на библиотеката pypdf. Преглеждаме всички анотации на PDF страници и след това използваме метода get_object, за да получим обекта на анотациите. След това извличаме съответната информация от обекта. Проверете кодовия фрагмент по-долу за подробности:
Изход
Както можем да видим на екранната снимка по-долу, програмата е върнала типа анотация и координатите на анотациите в PDF документа:
Заключение
Pypdf дава възможност на разработчиците на Python да добавят различни типове анотации към PDF файлове и да имат достъп до съществена информация за анотациите, като техния тип и местоположение, което го прави практичен избор за задачи, изискващи добавяне на анотации и извличане на данни за анотации.