Аннотации водяного знака с использованием Python
В этой статье показано, как работать с аннотациями водяных знаков в PDF‑документах с использованием Aspose.PDF for Python via .NET.
Пример скрипта демонстрирует три процесса:
- добавить аннотацию водяного знака
- получить прямоугольники аннотаций водяного знака
- удалить аннотации водяных знаков
Добавление аннотацию водяного знака
В этом примере добавляется аннотация водяного знака на первую страницу PDF‑документа. Водяной знак использует текстовое состояние для управления настройками шрифта и применяет пользовательскую непрозрачность для полупрозрачного вида.
Открытие PDF и получить целевую страницу
document = ap.Document(infile)
page = document.pages[1]
Создание аннотацию водяного знака
Определите прямоугольник аннотации и добавьте его в коллекцию аннотаций страницы.
watermark_annotation = ap.annotations.WatermarkAnnotation(
page,
ap.Rectangle(100, 100, 400, 200, True),
)
page.annotations.append(watermark_annotation)
Настройка внешнего вида текста
Создать TextState объект для управления цветом текста, размером шрифта и семейством шрифтов.
text_state = ap.text.TextState()
text_state.foreground_color = ap.Color.blue
text_state.font_size = 25
text_state.font = ap.text.FontRepository.find_font("Arial")
Установка непрозрачность и текст водяного знака
Пример использует 50% непрозрачности и записывает три строки текста в аннотацию водяного знака.
watermark_annotation.opacity = 0.5
watermark_annotation.set_text_and_state(["HELLO", "Line 1", "Line 2"], text_state)
Сохранение PDF
document.save(outfile)
Полный пример
def watermark_add(infile, outfile):
document = ap.Document(infile)
page = document.pages[1]
watermark_annotation = ap.annotations.WatermarkAnnotation(
page,
ap.Rectangle(100, 100, 400, 200, True),
)
page.annotations.append(watermark_annotation)
text_state = ap.text.TextState()
text_state.foreground_color = ap.Color.blue
text_state.font_size = 25
text_state.font = ap.text.FontRepository.find_font("Arial")
watermark_annotation.opacity = 0.5
watermark_annotation.set_text_and_state(["HELLO", "Line 1", "Line 2"], text_state)
document.save(outfile)
Получение аннотацию водяного знака
Чтобы просмотреть существующие аннотации водяных знаков, отфильтруйте аннотации первой страницы по WATERMARK введите тип и распечатайте их прямоугольники.
Загрузить документ и собрать аннотации водяных знаков
document = ap.Document(infile)
watermark_annotations = [
a
for a in document.pages[1].annotations
if a.annotation_type == ap.annotations.AnnotationType.WATERMARK
]
Вывести прямоугольники аннотаций
for watermark_annotation in watermark_annotations:
print(watermark_annotation.rect)
Полный пример
def watermark_get(infile, outfile):
document = ap.Document(infile)
watermark_annotations = [
a
for a in document.pages[1].annotations
if a.annotation_type == ap.annotations.AnnotationType.WATERMARK
]
for watermark_annotation in watermark_annotations:
print(watermark_annotation.rect)
Удаление аннотацию водяного знака
Этот рабочий процесс удаляет все аннотации водяных знаков с первой страницы и сохраняет обновлённый PDF.
Найти аннотации водяных знаков для удаления
document = ap.Document(infile)
watermark_annotations = [
a
for a in document.pages[1].annotations
if a.annotation_type == ap.annotations.AnnotationType.WATERMARK
]
Удаление аннотации и сохранить PDF
for watermark_annotation in watermark_annotations:
document.pages[1].annotations.delete(watermark_annotation)
document.save(outfile)
Полный пример
def watermark_delete(infile, outfile):
document = ap.Document(infile)
watermark_annotations = [
a
for a in document.pages[1].annotations
if a.annotation_type == ap.annotations.AnnotationType.WATERMARK
]
for watermark_annotation in watermark_annotations:
document.pages[1].annotations.delete(watermark_annotation)
document.save(outfile)