Adicionar imagem a PDF existente em Python

Adicionar Imagem a um Arquivo PDF Existente em Python

Este exemplo mostra como posicionar uma imagem em um local fixo em uma página PDF existente usando Aspose.PDF for Python via .NET.

Use estes exemplos quando precisar adicionar um logotipo, foto, carimbo, gráfico ou outro elemento visual a um layout PDF existente. Você pode posicionar a imagem com coordenadas de página, desenhá‑la com operadores, adicionar texto de acessibilidade ou controlar a compressão da imagem.

  1. Carregue um PDF existente com ap.Document(infile).
  2. Selecione a página de destino (document.pages[1] para a primeira página).
  3. Chamar page.add_image() com:
    • O caminho do arquivo de imagem.
    • A Rectangle definindo coordenadas de posicionamento.
  4. Salve o PDF atualizado.
import aspose.pdf as ap


def add_image(infile, image_file, outfile):
    document = ap.Document(infile)
    page = document.pages[1]
    page.add_image(image_file, ap.Rectangle(20, 730, 120, 830, True))
    document.save(outfile)

Adicionar uma imagem ao PDF usando operadores

Esta abordagem adiciona uma imagem com operadores PDF de baixo nível em vez dos de alto nível add_image() ajudante.

  1. Crie um novo Document e adicione uma página.
  2. Adicionar a imagem aos recursos da página (page.resources.images).
  3. Criar operadores de transformação (GSave, ConcatenateMatrix, Do, GRestore).
  4. Adicione operadores ao conteúdo da página.
  5. Salve o PDF resultante.
import aspose.pdf as ap
from io import FileIO


def add_image_using_operators(image_file, outfile):
    document = ap.Document()
    page = document.pages.add()
    page.set_page_size(842, 595)
    resources_images = page.resources.images

    with FileIO(image_file, "rb") as image_stream:
        image_id = resources_images.add(image_stream)

    rectangle = ap.Rectangle(0, 0, page.media_box.width, page.media_box.height, True)

    operators = [
        ap.operators.GSave(),
        ap.operators.ConcatenateMatrix(
            ap.Matrix(
                rectangle.urx - rectangle.llx,
                0,
                0,
                rectangle.ury - rectangle.lly,
                rectangle.llx,
                rectangle.lly,
            )
        ),
        ap.operators.Do(image_id),
        ap.operators.GRestore(),
    ]

    page.contents.add(operators)
    document.save(outfile)

Adicionar imagem ao PDF com texto alternativo

Este exemplo adiciona uma imagem e atribui texto alternativo para acessibilidade.

  1. Crie um novo Document e adicione uma página.
  2. Adicione a imagem à página com page.add_image().
  3. Obter recursos de imagem de page.resources.images.
  4. Definir texto alternativo usando try_set_alternative_text().
  5. Salve o PDF resultante.
import aspose.pdf as ap


def add_image_set_alternative_text(image_file, outfile):
    document = ap.Document()
    page = document.pages.add()
    page.set_page_size(842, 595)

    page.add_image(image_file, ap.Rectangle(0, 0, 842, 595, True))
    resources_images = page.resources.images
    x_image = resources_images[1]
    result = x_image.try_set_alternative_text("Alternative text for image", page)

    if result:
        print("Alternative text has been added successfully")

    document.save(outfile)

Adicionar uma imagem a um PDF com compactação Flate

Este exemplo incorpora uma imagem usando ImageFilterType.FLATE compressão.

  1. Crie um novo Document e adicione uma página.
  2. Adicionar a imagem aos recursos da página com compactação Flate.
  3. Usar operadores de matriz para posicionar e desenhar a imagem.
  4. Salve o documento.
import aspose.pdf as ap
from io import FileIO


def add_image_to_pdf_with_flate_compression(image_file, outfile):
    document = ap.Document()
    page = document.pages.add()
    resources_images = page.resources.images

    with FileIO(image_file, "rb") as image_stream:
        image_id = resources_images.add(image_stream, ap.ImageFilterType.FLATE)

    rectangle = ap.Rectangle(0, 0, 600, 600, True)
    matrix = ap.Matrix(
        rectangle.urx - rectangle.llx,
        0,
        0,
        rectangle.ury - rectangle.lly,
        rectangle.llx,
        rectangle.lly,
    )

    page.contents.add([ap.operators.GSave()])
    page.contents.add([ap.operators.ConcatenateMatrix(matrix)])
    page.contents.add([ap.operators.Do(image_id)])
    page.contents.add([ap.operators.GRestore()])

    document.save(outfile)

Tópicos Relacionados a Imagens