Дополнительные аннотации с использованием Python

Как добавить аннотацию каретки в существующий PDF файл с помощью Python

Аннотация каретки — это символ, который указывает на редактирование текста. Аннотация каретки также является аннотацией разметки, поэтому класс Caret наследуется от класса Markup и также предоставляет функции для получения или установки свойств аннотации каретки и сброса потока отображения аннотации каретки. Аннотации каретки часто используются для предложения изменений, дополнений или изменений в тексте.

Шаги, с помощью которых мы создаем аннотацию каретки:

  1. Загрузите PDF файл - новый Document.
  2. Создайте новую CaretAnnotation и установите параметры каретки (новый прямоугольник, заголовок, тема, флаги, цвет). Эта аннотация используется для указания вставки текста.
  3. Как только мы сможем добавить аннотации на страницу.

Следующий фрагмент кода показывает, как добавить аннотацию каретки в PDF файл:


    import aspose.pdf as ap

    # Открыть документ
    document = ap.Document(input_file)

    caretAnnotation1 = ap.annotations.CaretAnnotation(
        document.pages[1], ap.Rectangle(200, 700.664, 308.708, 740.769, True)
    )
    caretAnnotation1.title = "Пользователь Aspose"
    caretAnnotation1.subject = "Вставленный текст 1"
    caretAnnotation1.flags = ap.annotations.AnnotationFlags.PRINT
    caretAnnotation1.color = ap.Color.blue

    document.pages[1].annotations.append(caretAnnotation1)
    document.save(output_file)

Получение аннотации каретки

Пожалуйста, попробуйте использовать следующий фрагмент кода для получения аннотации каретки в PDF документе


    import aspose.pdf as ap

    document = ap.Document(input_file)
    caretAnnotations = [
        a
        for a in document.pages[1].annotations
        if (a.annotation_type == ap.annotations.AnnotationType.CARET)
    ]

    for ca in caretAnnotations:
        print(ca.rect)

Удаление аннотации каретки

Следующий фрагмент кода показывает, как удалить аннотацию каретки из PDF файла с использованием Python.


    import aspose.pdf as ap

    # Загрузите PDF файл
    document = ap.Document(input_file)
    caretAnnotations = [
        a
        for a in document.pages[1].annotations
        if (a.annotation_type == ap.annotations.AnnotationType.CARET)
    ]

    for ca in caretAnnotations:
        document.pages[1].annotations.delete(ca)

    document.save(output_file)

Добавление аннотации ссылки

Ссылки — это аннотации, которые открывают URL-адреса или перемещаются к определённым позициям внутри того же или внешнего документа при клике.

A Link Annotations — это прямоугольная область, которую можно разместить в любом месте страницы. Каждая ссылка имеет соответствующее действие PDF, связанное с ней. Это действие выполняется, когда пользователь щелкает в области этой ссылки.

Следующий фрагмент кода показывает, как добавить аннотацию ссылки в PDF-файл, используя пример с номером телефона:


    import aspose.pdf as ap

    document = ap.Document(input_file)
    # Создать объект TextFragmentAbsorber для поиска номера телефона
    textFragmentAbsorber = ap.text.TextFragmentAbsorber("file")

    # Применить поглотитель только для 1-й страницы
    document.pages[1].accept(textFragmentAbsorber)

    phoneNumberFragment = textFragmentAbsorber.text_fragments[1]

    # Создать аннотацию ссылки и установить действие для вызова номера телефона
    linkAnnotation = ap.annotations.LinkAnnotation(document.pages[1], phoneNumberFragment.rectangle)
    linkAnnotation.action = ap.annotations.GoToURIAction("www.aspose.com")

    # Добавить аннотацию на страницу
    document.pages[1].annotations.append(linkAnnotation)
    document.save(output_file)

Получение Аннотации Ссылки

Пожалуйста, попробуйте использовать следующий фрагмент кода, чтобы получить LinkAnnotation из PDF-документа.


    import aspose.pdf as ap

    document = ap.Document(input_file)
    linkAnnotations = [
        a
        for a in document.pages[1].annotations
        if (a.annotation_type == ap.annotations.AnnotationType.LINK)
    ]

    for la in linkAnnotations:
        print(la.rect)

Удаление Аннотации Ссылки

Следующий фрагмент кода показывает, как удалить аннотацию ссылки из PDF-файла. Для этого нам нужно найти и удалить все аннотации ссылок на первой странице. После этого мы сохраним документ с удаленной аннотацией.


    import aspose.pdf as ap

    document = ap.Document(input_file)
    highlightAnnotations = [
        a
        for a in document.pages[1].annotations
        if (a.annotation_type == ap.annotations.AnnotationType.LINK)
    ]

    for hs in highlightAnnotations:
        document.pages[1].annotations.delete(hs)

    document.save(output_file)

Редактирование определенного региона страницы с помощью аннотации редактирования с использованием Aspose.PDF для Python

Aspose.PDF для Python через .NET поддерживает возможность добавления и изменения аннотаций в существующем PDF-файле. Аннотации редактирования в PDF-документах служат для окончательного удаления или скрытия конфиденциальной информации в документе. Процесс редактирования информации включает в себя покрытие или затенение определенного контента, такого как текст, изображения или графика, таким образом, чтобы ограничить его видимость и доступность для других. Это гарантирует, что конфиденциальная информация остается скрытой и защищенной в документе. Для выполнения этого требования предоставляется класс под названием RedactionAnnotation, который может использоваться для редактирования определенных регионов страницы или может использоваться для управления существующими RedactionAnnotations и их редактирования (т.е. сглаживания аннотации и удаления текста под ней).


    import aspose.pdf as ap

    document = ap.Document(input_file)
    page = document.pages[1]
    redactionAnnotation = ap.annotations.RedactionAnnotation(page, ap.Rectangle(270, 190, 371, 250, True))
    redactionAnnotation.title = "John Smith"
    redactionAnnotation.fill_color = ap.Color.light_gray
    redactionAnnotation.color = ap.Color.red
    redactionAnnotation.redact()

    page.annotations.append(redactionAnnotation)
    document.save(output_file)

Получить Аннотацию Сокрытия


    import aspose.pdf as ap

    document = ap.Document(input_file)
    redactionAnnotations = [
        a
        for a in document.pages[1].annotations
        if (a.annotation_type == ap.annotations.AnnotationType.REDACTION)
    ]

    for pa in redactionAnnotations:
        print(pa.rect)

Удалить Аннотацию Сокрытия


    import aspose.pdf as ap

    document = ap.Document(input_file)
    redactionAnnotations = [
        a
        for a in document.pages[1].annotations
        if (a.annotation_type == ap.annotations.AnnotationType.REDACTION)
    ]

    for pa in redactionAnnotations:
        document.pages[1].annotations.delete(pa)

    document.save(output_file)