Membuat Thumbnail Bentuk Presentasi di Python via Java

Pendahuluan

Aspose.Slides for Python via Java dapat digunakan untuk membuat file presentasi di mana setiap halaman sesuai dengan sebuah slide. Slide dapat dilihat dengan membuka file presentasi menggunakan Microsoft PowerPoint. Namun, pengembang kadang perlu melihat gambar bentuk secara terpisah di penampil gambar. Dalam kasus tersebut, Aspose.Slides for Python via Java membantu mereka menghasilkan gambar miniatur bentuk slide.

Artikel ini menjelaskan cara menghasilkan thumbnail bentuk dengan berbagai cara:

  • Membuat thumbnail bentuk di dalam slide.
  • Membuat thumbnail bentuk untuk bentuk slide dengan dimensi yang ditentukan pengguna.
  • Membuat thumbnail bentuk dalam batas tampilan bentuk.

Hasilkan Thumbnail Bentuk dari Slide

Untuk menghasilkan thumbnail bentuk dari slide mana pun menggunakan Aspose.Slides for Python via Java, lakukan hal berikut:

  1. Buat sebuah instance dari kelas Presentation.
  2. Dapatkan referensi ke sebuah slide menggunakan ID atau indeksnya.
  3. Ambil gambar thumbnail bentuk dari sebuah bentuk pada slide yang direferensikan dengan skala default.
  4. Simpan gambar thumbnail dalam format gambar pilihan Anda.

Kode contoh ini menunjukkan cara menghasilkan thumbnail bentuk dari slide:

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import ImageFormat, Presentation

# Membuat instance kelas Presentation yang mewakili file presentasi.
presentation = Presentation("Thumbnail.pptx")
try:
    # Membuat gambar skala penuh.
    shape_image = presentation.getSlides().get_Item(0).getShapes().get_Item(0).getImage()
    try:
        # Simpan gambar ke disk dalam format PNG.
        shape_image.save("output.png", ImageFormat.Png)
    finally:
        shape_image.dispose()
finally:
    presentation.dispose()

Hasilkan Thumbnail dengan Faktor Skala yang Ditentukan Pengguna

Untuk menghasilkan thumbnail bentuk dari slide menggunakan Aspose.Slides for Python via Java, lakukan hal berikut:

  1. Buat sebuah instance dari kelas Presentation.
  2. Dapatkan referensi ke sebuah slide menggunakan ID atau indeksnya.
  3. Ambil gambar thumbnail bentuk dari sebuah bentuk pada slide yang direferensikan dengan dimensi yang ditentukan pengguna.
  4. Simpan gambar thumbnail dalam format gambar pilihan Anda.

Kode contoh ini menunjukkan cara menghasilkan thumbnail bentuk berdasarkan faktor skala yang ditentukan:

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import ImageFormat, Presentation, ShapeThumbnailBounds

# Membuat instance kelas Presentation yang mewakili file presentasi.
presentation = Presentation("Thumbnail.pptx")
try:
    # Membuat gambar dengan skala faktor 2 di kedua arah.
    shape_image = presentation.getSlides().get_Item(0).getShapes().get_Item(0).getImage(ShapeThumbnailBounds.Shape, 2, 2)
    try:
        # Simpan gambar ke disk dalam format PNG.
        shape_image.save("output.png", ImageFormat.Png)
    finally:
        shape_image.dispose()
finally:
    presentation.dispose()

Buat Thumbnail Tampilan Bentuk Berbasis Batas

Metode ini untuk membuat thumbnail bentuk memungkinkan pengembang menghasilkan thumbnail dalam batas tampilan bentuk. Ini mempertimbangkan semua efek bentuk. Thumbnail bentuk yang dihasilkan dibatasi oleh batas slide. Untuk menghasilkan thumbnail bentuk slide dalam batas tampilannya, lakukan hal berikut:

  1. Buat sebuah instance dari kelas Presentation.
  2. Dapatkan referensi ke sebuah slide menggunakan ID atau indeksnya.
  3. Ambil gambar thumbnail dari sebuah bentuk pada slide yang direferensikan menggunakan batas tampilannya.
  4. Simpan gambar thumbnail dalam format gambar pilihan Anda.

Kode contoh ini berdasarkan langkah‑langkah di atas:

import jpile
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import ImageFormat, Presentation, ShapeThumbnailBounds

# Membuat instance kelas Presentation yang mewakili file presentasi.
presentation = Presentation("Thumbnail.pptx")
try:
    # Membuat gambar skala penuh.
    shape_image = presentation.getSlides().get_Item(0).getShapes().get_Item(0).getImage(ShapeThumbnailBounds.Appearance, 1, 1)
    try:
        # Simpan gambar ke disk dalam format PNG.
        shape_image.save("output.png", ImageFormat.Png)
    finally:
        shape_image.dispose()
finally:
    presentation.dispose()

Dapatkan Batas Visual Aktual dari Sebuah Bentuk

Properti frame dari Shape—metode getX, getY, getWidth, dan getHeight—menjelaskan persegi panjang yang disimpan dalam model presentasi. Konten yang sebenarnya dirender dapat melampaui frame tersebut atau menempati persegi panjang yang sejajar sumbu yang berbeda. Rotasi, outline, kepala panah, tata letak teks dan overflow, geometri SmartArt yang dihasilkan, dan efek rendering lainnya dapat mengubah area yang ditempati.

Gunakan Shape.getVisualBounds untuk menghitung area yang ditempati tanpa membuat gambar. Metode ini mengembalikan sebuah Rectangle2D.Float dalam koordinat slide. Persegi panjang yang dikembalikan tidak dipotong ke slide, sehingga koordinatnya dapat menjadi negatif ketika konten melampaui asal slide.

Contoh berikut memperoleh dan membandingkan frame serta batas visual:

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import Presentation
from java.awt.geom import Rectangle2D

presentation = Presentation("example.pptx")
try:
    slide = presentation.getSlides().get_Item(0)
    shape = slide.getShapes().get_Item(0)

    visual_bounds = shape.getVisualBounds()
    frame_bounds = Rectangle2D.Float(shape.getX(), shape.getY(), shape.getWidth(), shape.getHeight())

    print("Frame bounds:", frame_bounds)
    print("Visual bounds:", visual_bounds)
finally:
    presentation.dispose()

Rectangle2D.Float yang sama dapat digunakan untuk menyelaraskan bentuk‑bentuk di sekitarnya ke tepi kiri, kanan, atas, atau bawah; menyediakan cukup ruang dalam tata letak yang dihasilkan; atau mendeteksi konten di luar wilayah yang diizinkan. Batas visual sangat berguna untuk SmartArt, kotak teks, panah, gambar, bentuk yang diputar, dan grup bentuk, di mana frame yang disimpan mungkin tidak merepresentasikan hasil render penuh.

Gunakan Shape.getVisualBounds ketika Anda membutuhkan koordinat untuk tata letak atau validasi dan tidak memerlukan bitmap. Gunakan Shape.getImage ketika Anda perlu merender bentuk. Dengan ShapeThumbnailBounds, ShapeThumbnailBounds.Shape mengatur ukuran gambar dari batas bentuk, termasuk pengaturan outline, sementara ShapeThumbnailBounds.Appearance mengatur ukuran dari tampilan bentuk dan membatasi hasil ke batas slide. Sebaliknya, Shape.getVisualBounds hanya mengembalikan persegi panjang yang dihitung dan tidak memotongnya ke slide.

FAQ

Format gambar apa yang dapat digunakan saat menyimpan thumbnail bentuk?

PNG, JPEG, BMP, GIF, TIFF, dan lainnya. Bentuk juga dapat dieksport sebagai SVG vektor dengan menyimpan konten bentuk sebagai SVG.

Apa perbedaan antara batas Shape dan Appearance saat merender thumbnail?

Shape menggunakan geometri bentuk; Appearance memperhitungkan efek visual (bayangan, cahaya, dll).

Apa yang terjadi jika sebuah bentuk ditandai sebagai tersembunyi? Apakah tetap akan dirender sebagai thumbnail?

Bentuk yang tersembunyi tetap menjadi bagian dari model dan dapat dirender; flag tersembunyi memengaruhi tampilan presentasi tetapi tidak mencegah pembuatan gambar bentuk.

Apakah grup bentuk, diagram, SmartArt, dan objek kompleks lainnya didukung?

Ya. Objek apa pun yang direpresentasikan sebagai Shape (termasuk GroupShape, Chart, dan SmartArt) dapat disimpan sebagai thumbnail atau sebagai SVG.

Apakah font yang diinstal sistem memengaruhi kualitas thumbnail untuk bentuk teks?

Ya. Anda harus menyediakan font yang diperlukan (atau mengonfigurasi substitusi font) untuk menghindari fallback yang tidak diinginkan dan penataan ulang teks.