Tambahkan Gambar ke PDF yang Ada di Python

Tambahkan Gambar ke File PDF yang Ada di Python

Contoh ini menunjukkan cara menempatkan gambar pada posisi tetap di halaman PDF yang ada menggunakan Aspose.PDF for Python via .NET.

Gunakan contoh-contoh ini ketika Anda perlu menambahkan logo, foto, stempel, bagan, atau grafik lainnya ke tata letak PDF yang ada. Anda dapat menempatkan gambar dengan koordinat halaman, menggambarnya dengan operator, menambahkan teks aksesibilitas, atau mengontrol kompresi gambar.

  1. Muat PDF yang ada dengan ap.Document(infile).
  2. Pilih halaman target (document.pages[1] untuk halaman pertama).
  3. Panggil page.add_image() dengan:
    • Jalur file gambar.
    • A Rectangle menentukan koordinat penempatan.
  4. Simpan PDF yang diperbarui.
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)

Tambahkan Gambar ke PDF Menggunakan Operator

Pendekatan ini menambahkan gambar dengan operator PDF tingkat rendah alih-alih yang tingkat tinggi add_image() pembantu.

  1. Buat yang baru Document dan tambahkan sebuah halaman.
  2. Tambahkan gambar ke sumber daya halaman (page.resources.images).
  3. Buat operator transformasi (GSave, ConcatenateMatrix, Do, GRestore).
  4. Tambahkan operator ke isi halaman.
  5. Simpan PDF yang dihasilkan.
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)

Tambahkan Gambar ke PDF dengan Teks Alternatif

Contoh ini menambahkan gambar dan menetapkan teks alternatif untuk aksesibilitas.

  1. Buat yang baru Document dan tambahkan sebuah halaman.
  2. Tambah gambar ke halaman dengan page.add_image().
  3. Dapatkan sumber daya gambar dari page.resources.images.
  4. Atur teks alt menggunakan try_set_alternative_text().
  5. Simpan PDF yang dihasilkan.
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)

Tambahkan Gambar ke PDF dengan Kompresi Flate

Contoh ini menyisipkan gambar menggunakan ImageFilterType.FLATE kompresi.

  1. Buat yang baru Document dan tambahkan sebuah halaman.
  2. Tambahkan gambar ke sumber daya halaman dengan kompresi Flate.
  3. Gunakan operator matriks untuk menempatkan dan menggambar gambar.
  4. Simpan dokumen.
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)

Topik Gambar Terkait