Импорт и экспорт аннотаций с использованием 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)

Связанные темы