Дополнительные аннотации с использованием Python
Как добавить аннотацию каретки в существующий PDF файл с помощью Python
Аннотация каретки — это символ, который указывает на редактирование текста. Аннотация каретки также является аннотацией разметки, поэтому класс Caret наследуется от класса Markup и также предоставляет функции для получения или установки свойств аннотации каретки и сброса потока отображения аннотации каретки. Аннотации каретки часто используются для предложения изменений, дополнений или изменений в тексте.
Шаги, с помощью которых мы создаем аннотацию каретки:
- Загрузите PDF файл - новый Document.
- Создайте новую CaretAnnotation и установите параметры каретки (новый прямоугольник, заголовок, тема, флаги, цвет). Эта аннотация используется для указания вставки текста.
- Как только мы сможем добавить аннотации на страницу.
Следующий фрагмент кода показывает, как добавить аннотацию каретки в 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)