Anotações de Marca d'água usando Python

Este artigo mostra como trabalhar com anotações de marca d’água em documentos PDF usando Aspose.PDF for Python via .NET.

O script de exemplo demonstra três fluxos de trabalho comuns:

  • adicionar uma anotação de marca d’água
  • obter retângulos de anotação de marca d’água
  • excluir anotações de marca d’água

Adicionar Anotação de Marca d’água

Este exemplo adiciona uma anotação de marca d’água à primeira página de um documento PDF. A marca d’água usa um estado de texto para controlar as configurações de fonte e aplica opacidade personalizada para uma aparência semitransparente.

Abra o PDF e obtenha a página de destino

document = ap.Document(infile)
page = document.pages[1]

Criar a anotação de marca d’água

Defina o retângulo da anotação e adicione-o à coleção de anotações da página.

watermark_annotation = ap.annotations.WatermarkAnnotation(
    page,
    ap.Rectangle(100, 100, 400, 200, True),
)

page.annotations.append(watermark_annotation)

Configure a aparência do texto

Criar um TextState objeto para controlar a cor do texto, o tamanho da fonte e a família da fonte.

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")

Definir opacidade e texto da marca d’água

O exemplo usa opacidade de 50% e escreve três linhas de texto na anotação de marca d’água.

watermark_annotation.opacity = 0.5
watermark_annotation.set_text_and_state(["HELLO", "Line 1", "Line 2"], text_state)

Salvar o PDF

document.save(outfile)

Exemplo completo

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)

Obter Anotação de Marca d’água

Para inspecionar anotações de marca d’água existentes, filtre as anotações da primeira página pelo WATERMARK digite e imprima seus retângulos.

Carregue o documento e colete as anotações de marca d’água

document = ap.Document(infile)
watermark_annotations = [
    a
    for a in document.pages[1].annotations
    if a.annotation_type == ap.annotations.AnnotationType.WATERMARK
]

Imprima os retângulos de anotação

for watermark_annotation in watermark_annotations:
    print(watermark_annotation.rect)

Exemplo completo

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)

Excluir anotação de marca d’água

Este fluxo de trabalho remove todas as anotações de marca d’água da primeira página e salva o PDF atualizado.

Encontrar anotações de marca d’água para remover

document = ap.Document(infile)
watermark_annotations = [
    a
    for a in document.pages[1].annotations
    if a.annotation_type == ap.annotations.AnnotationType.WATERMARK
]

Exclua as anotações e salve o PDF

for watermark_annotation in watermark_annotations:
    document.pages[1].annotations.delete(watermark_annotation)

document.save(outfile)

Exemplo completo

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)

Tópicos Relacionados