Использование текстовой аннотации для PDF через Python

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

Текстовая аннотация — это аннотация, прикрепленная к определенному месту в PDF документе. Когда аннотация закрыта, она отображается в виде значка; когда открыта, должна отображаться всплывающее окно с текстом заметки в шрифте и размере, выбранными читателем.

Аннотации содержатся в коллекции Annotations конкретной страницы. Эта коллекция содержит аннотации только для этой отдельной страницы; каждая страница имеет свою собственную коллекцию аннотаций.

Чтобы добавить аннотацию на конкретную страницу, добавьте ее в коллекцию аннотаций этой страницы с помощью метода add().

  1. Сначала создайте аннотацию, которую вы хотите добавить в PDF.

  2. Затем откройте входной PDF.

  3. Добавьте аннотацию в коллекцию Annotations объекта ‘page’.

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


    import aspose.pdf as ap

    document = ap.Document(input_file)

    textAnnotation = ap.annotations.TextAnnotation(
        document.pages[1], ap.Rectangle(300, 700.664, 320, 720.769, True)
    )
    textAnnotation.title = "Aspose User"
    textAnnotation.subject = "Inserted text 1"
    textAnnotation.contents = "qwerty"
    textAnnotation.flags = ap.annotations.AnnotationFlags.PRINT
    textAnnotation.color = ap.Color.blue

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

Получить текстовую аннотацию из PDF файла


    import aspose.pdf as ap

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

    for ta in textAnnotations:
        print(ta.rect)

Удаление текстовой аннотации из PDF файла


    import aspose.pdf as ap

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

    for ta in textAnnotations:
        document.pages[1].annotations.delete(ta)

    document.save(output_file)

Как добавить (или создать) новую аннотацию свободного текста

Аннотация свободного текста отображает текст непосредственно на странице. Класс FreeTextAnnotation позволяет создавать этот тип аннотации. В следующем фрагменте кода мы добавляем аннотацию свободного текста выше первого вхождения строки.


    import aspose.pdf as ap

    # Загрузить PDF файл
    document = ap.Document(input_file)

    freeTextAnnotation = ap.annotations.FreeTextAnnotation(
        document.pages[1], ap.Rectangle(299, 713, 308, 720, True), ap.annotations.DefaultAppearance()
    )
    freeTextAnnotation.title = "Aspose User"
    freeTextAnnotation.color = ap.Color.light_green

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

Получить свободную текстовую аннотацию из PDF файла


    import aspose.pdf as ap

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

    for fa in freeTextAnnotations:
        print(fa.rect)

Удалить свободную текстовую аннотацию из PDF файла


    import aspose.pdf as ap

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

    for fa in freeTextAnnotations:
        document.pages[1].annotations.delete(fa)

    document.save(output_file)

Зачеркнуть слова, используя StrikeOutAnnotation

Aspose.PDF для Python позволяет добавлять, удалять и обновлять аннотации в PDF документах. Один из классов позволяет зачеркивать аннотации тоже. Когда StrikeOutAnnotation применяется к PDF, через указанный текст проводится линия, указывающая на то, что он должен быть удален или проигнорирован.

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


    import aspose.pdf as ap

    document = ap.Document(input_file)

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

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

Получить StrikeOutAnnotation из PDF


    import aspose.pdf as ap

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

    for pa in StrikeoutAnnotations:
        print(pa.rect)

Удаление StrikeOutAnnotation из PDF


    import aspose.pdf as ap

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

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

    document.save(output_file)