Импорт и экспорт аннотаций с использованием Python
В этой статье показано, как импортировать аннотации из существующего PDF и экспортировать их в новый PDF‑документ, используя Aspose.PDF for Python via .NET.
Пример считывает аннотации с первой страницы исходного файла, создает новый PDF, добавляет пустую страницу и копирует каждую аннотацию на эту новую страницу. Такой подход полезен, когда необходимо перенести комментарии, разметку или заметки рецензии в отдельный выходной документ.
Загрузить исходный PDF
Создать Document объект входного файла, который уже содержит аннотации. Этот объект предоставляет доступ к коллекции страниц и аннотациям, хранящимся на каждой странице.
source_document = ap.Document(infile)
Создание целевого PDF
Затем создайте пустой PDF‑документ, который будет принимать импортированные аннотации. На данном этапе целевой документ не содержит страниц.
destination_document = ap.Document()
Добавление страницу для экспортированных аннотаций
Поскольку аннотации должны принадлежать странице, добавьте новую страницу в целевой документ перед копированием чего‑либо.
page = destination_document.pages.add()
Скопировать аннотации с исходной страницы
Пройдитесь по коллекции аннотаций на первой странице исходного PDF и добавьте каждую аннотацию на новую страницу в целевом документе.
Второй аргумент в page.annotations.add(annot, True) сообщает Aspose.PDF копировать аннотацию в целевую страницу вместо простого переиспользования существующей ссылки на объект.
for annot in source_document.pages[1].annotations:
page.annotations.add(annot, True)
Сохранение выходного документа
После того как все аннотации будут скопированы, сохраните целевой документ, чтобы создать окончательный PDF‑файл.
destination_document.save(outfile)
Полный пример
Следующий код объединяет все шаги в одну переиспользуемую функцию:
import sys
import aspose.pdf as ap
from os import path
sys.path.append(path.join(path.dirname(__file__), ".."))
from config import set_license, initialize_data_dir
def import_export(infile, outfile):
"""
Import annotations from one PDF document and export them to a new PDF document.
"""
source_document = ap.Document(infile)
destination_document = ap.Document()
page = destination_document.pages.add()
for annot in source_document.pages[1].annotations:
page.annotations.add(annot, True)
destination_document.save(outfile)