Konversi PPT dan PPTX ke PDF dalam Python via Java [Fitur Lanjutan Termasuk]
Ringkasan
Mengonversi presentasi PowerPoint (PPT, PPTX, ODP, dll.) ke format PDF dalam Python melalui Java menawarkan beberapa keuntungan, termasuk kompatibilitas di berbagai perangkat dan menjaga tata letak serta pemformatan presentasi Anda. Panduan ini menunjukkan cara mengonversi presentasi ke dokumen PDF, menggunakan berbagai opsi untuk mengontrol kualitas gambar, menyertakan slide tersembunyi, memberi perlindungan password pada file PDF, mendeteksi substitusi font, memilih slide tertentu untuk konversi, dan menerapkan standar kepatuhan pada dokumen keluaran.
Konversi PowerPoint ke PDF
Dengan Aspose.Slides, Anda dapat mengonversi presentasi dalam format berikut ke PDF:
- PPT
- PPTX
- ODP
Untuk mengonversi sebuah presentasi ke PDF, berikan nama file sebagai argumen ke kelas Presentation lalu simpan presentasi sebagai PDF menggunakan metode save. Kelas Presentation menyediakan metode save yang biasanya digunakan untuk mengonversi sebuah presentasi ke PDF.
Note
Aspose.Slides for Python via Java menyisipkan informasi API dan nomor versi ke dalam dokumen output. Misalnya, saat mengonversi sebuah presentasi ke PDF, Aspose.Slides mengisi bidang Application dengan “Aspose.Slides” dan bidang PDF Producer dengan nilai dalam format “Aspose.Slides v XX.XX”. Catatan bahwa Anda tidak dapat menginstruksikan Aspose.Slides untuk mengubah atau menghapus informasi ini dari dokumen output.Aspose.Slides memungkinkan Anda mengonversi:
- Seluruh presentasi ke PDF
- Slide tertentu dari sebuah presentasi ke PDF
Aspose.Slides mengekspor presentasi ke PDF, memastikan PDF yang dihasilkan sangat mirip dengan presentasi asli. Elemen dan atribut dirender secara akurat dalam konversi, termasuk:
- Gambar
- Kotak teks dan bentuk
- Pemformatan teks
- Pemformatan paragraf
- Tautan
- Header dan footer
- Bullet
- Tabel
Mengonversi PowerPoint ke PDF
Konversi standar menggunakan pengaturan ekspor PDF default. Gunakan opsi khusus ketika Anda perlu mengontrol kualitas gambar, konten halaman, atau kepatuhan PDF.
Instal Aspose.Slides for Python via Java dan runtime Java yang kompatibel sebelum menjalankan contoh. Setiap contoh membaca presentation.pptx dari direktori kerja saat ini; ganti dengan file PPT, PPTX, atau ODP Anda. Mulai JVM sekali per proses Python.
Kode ini mengonversi sebuah presentasi ke PDF:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat
presentation = Presentation("presentation.pptx")
try:
presentation.save("presentation.pdf", SaveFormat.Pdf)
finally:
presentation.dispose()
Note
Aspose menyediakan konverter online gratis PowerPoint ke PDF di https://products.aspose.app/slides/id/conversion/ppt-to-pdf yang menunjukkan proses konversi presentasi ke PDF. Anda dapat menguji konverter ini untuk melihat implementasi prosedur yang dijelaskan di sini.Mengonversi PowerPoint ke PDF dengan Opsi
Aspose.Slides menyediakan opsi khusus—properti di dalam kelas PdfOptions—yang memungkinkan Anda menyesuaikan PDF yang dihasilkan, mengunci PDF dengan password, atau menentukan bagaimana proses konversi harus berjalan.
Mengonversi PowerPoint ke PDF dengan Opsi Kustom
Dengan opsi konversi kustom, Anda dapat menentukan pengaturan kualitas gambar raster yang diinginkan, menentukan cara menangani metafile, menetapkan tingkat kompresi untuk teks, mengonfigurasi DPI untuk gambar, dan lainnya.
Contoh kode di bawah ini menunjukkan cara mengonversi sebuah presentasi PowerPoint ke PDF dengan beberapa opsi kustom.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import PdfCompliance, PdfOptions, PdfTextCompression, Presentation, SaveFormat
presentation = Presentation("presentation.pptx")
try:
pdf_options = PdfOptions()
pdf_options.setJpegQuality(jpype.JByte(90))
pdf_options.setSufficientResolution(300)
pdf_options.setSaveMetafilesAsPng(True)
pdf_options.setTextCompression(PdfTextCompression.Flate)
pdf_options.setCompliance(PdfCompliance.Pdf15)
presentation.save("presentation-custom.pdf", SaveFormat.Pdf, pdf_options)
finally:
presentation.dispose()
Mengonversi PowerPoint ke PDF dengan Slide Tersembunyi
Jika sebuah presentasi berisi slide tersembunyi, Anda dapat menggunakan metode setShowHiddenSlides dari kelas PdfOptions untuk menyertakan slide tersembunyi sebagai halaman dalam PDF yang dihasilkan.
Kode ini menunjukkan cara mengonversi sebuah presentasi PowerPoint ke PDF dengan slide tersembunyi disertakan:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import PdfOptions, Presentation, SaveFormat
presentation = Presentation("presentation.pptx")
try:
pdf_options = PdfOptions()
pdf_options.setShowHiddenSlides(True)
presentation.save("presentation-hidden-slides.pdf", SaveFormat.Pdf, pdf_options)
finally:
presentation.dispose()
Mengonversi PowerPoint ke PDF dengan Perlindungan Password
Kode ini mendemonstrasikan cara mengonversi sebuah presentasi PowerPoint menjadi PDF yang dilindungi password menggunakan parameter perlindungan dari kelas PdfOptions:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import PdfAccessPermissions, PdfOptions, Presentation, SaveFormat
presentation = Presentation("presentation.pptx")
try:
pdf_options = PdfOptions()
pdf_options.setPassword("password")
permissions = PdfAccessPermissions.PrintDocument | PdfAccessPermissions.HighQualityPrint
pdf_options.setAccessPermissions(permissions)
presentation.save("presentation-protected.pdf", SaveFormat.Pdf, pdf_options)
finally:
presentation.dispose()
Mendeteksi Substitusi Font
Aspose.Slides menyediakan metode setWarningCallback di dalam kelas PdfOptions yang memungkinkan Anda mendeteksi substitusi font selama proses konversi presentasi ke PDF.
Gunakan proxy JPype untuk menerima callback peringatan dari API Java. Konversi string deskripsi Java ke string Python sebelum memeriksa prefiksnya:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import PdfOptions, Presentation, ReturnAction, SaveFormat, WarningType
class FontSubstitutionHandler:
def warning(self, warning):
description = str(warning.getDescription())
if warning.getWarningType() == WarningType.DataLoss and description.startswith("Font will be substituted"):
print(f"Font substitution warning: {description}")
return ReturnAction.Continue
presentation = Presentation("presentation.pptx")
try:
handler = FontSubstitutionHandler()
callback = jpype.JProxy("com.aspose.slides.IWarningCallback", inst=handler)
pdf_options = PdfOptions()
pdf_options.setWarningCallback(callback)
presentation.save("presentation-font-warnings.pdf", SaveFormat.Pdf, pdf_options)
finally:
presentation.dispose()
Note
Untuk informasi lebih lanjut tentang menerima callback untuk substitusi font selama proses rendering, lihat Getting Warning Callbacks for Font Substitution.
Untuk informasi lebih lanjut tentang substitusi font, lihat artikel Font Substitution.
Mengonversi Slide Pilihan di PowerPoint ke PDF
Nomor slide yang diberikan ke Presentation.save bersifat berbasis 1. Contoh ini mengekspor slide 1 dan 3 bila keduanya ada:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat
presentation = Presentation("presentation.pptx")
try:
if presentation.getSlides().size() >= 3:
slide_numbers = jpype.JArray(jpype.JInt)([1, 3])
presentation.save("presentation-selected-slides.pdf", slide_numbers, SaveFormat.Pdf)
else:
print("The presentation must contain at least three slides.")
finally:
presentation.dispose()
Mengonversi PowerPoint ke PDF dengan Ukuran Slide Kustom
Contoh ini mengekspor slide pertama pada halaman berukuran 612 x 792 poin (US Letter). Ia menyalin slide ke dalam presentasi baru dengan ukuran yang ditentukan:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat, SlideSizeScaleType
presentation = Presentation("presentation.pptx")
try:
resized_presentation = Presentation()
try:
resized_presentation.getSlideSize().setSize(612.0, 792.0, SlideSizeScaleType.EnsureFit)
if presentation.getSlides().size() > 0:
slide = presentation.getSlides().get_Item(0)
resized_presentation.getSlides().insertClone(0, slide)
resized_presentation.getSlides().removeAt(1)
resized_presentation.save("presentation-custom-size.pdf", SaveFormat.Pdf)
else:
print("The presentation contains no slides.")
finally:
resized_presentation.dispose()
finally:
presentation.dispose()
Mengonversi PowerPoint ke PDF dalam Tampilan Catatan Slide
Kode ini menunjukkan cara mengonversi sebuah presentasi PowerPoint ke PDF yang menyertakan catatan:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import NotesCommentsLayoutingOptions, NotesPositions, PdfOptions, Presentation, SaveFormat
presentation = Presentation("presentation.pptx")
try:
notes_options = NotesCommentsLayoutingOptions()
notes_options.setNotesPosition(NotesPositions.BottomFull)
pdf_options = PdfOptions()
pdf_options.setSlidesLayoutOptions(notes_options)
presentation.save("presentation-with-notes.pdf", SaveFormat.Pdf, pdf_options)
finally:
presentation.dispose()
Aksesibilitas dan Standar Kepatuhan PDF
Saat menyiapkan PDF yang dapat diakses, lihat Web Content Accessibility Guidelines (WCAG). Gunakan PdfOptions.setCompliance untuk memilih standar output: PDF/A1a, PDF/A1b, dan PDF/UA.
Kode ini mendemonstrasikan proses konversi PowerPoint ke PDF yang menghasilkan beberapa PDF berdasarkan standar kepatuhan yang berbeda:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import PdfCompliance, PdfOptions, Presentation, SaveFormat
presentation = Presentation("presentation.pptx")
try:
pdf_options = PdfOptions()
pdf_options.setCompliance(PdfCompliance.PdfA1a)
presentation.save("presentation-a1a.pdf", SaveFormat.Pdf, pdf_options)
pdf_options.setCompliance(PdfCompliance.PdfA1b)
presentation.save("presentation-a1b.pdf", SaveFormat.Pdf, pdf_options)
pdf_options.setCompliance(PdfCompliance.PdfUa)
presentation.save("presentation-ua.pdf", SaveFormat.Pdf, pdf_options)
finally:
presentation.dispose()
Catatan: Saat mengekspor ke PDF/UA, Aspose.Slides memperlakukan grafik kompleks seperti SmartArt, diagram, dan formula sebagai satu gambar tunggal. Elemen jalur individual tidak dipertahankan sebagai konten terpisah dan dapat ditandai sebagai artefak; teks alternatif hanya disediakan untuk gambar keseluruhan.
FAQ
Apakah saya dapat mengonversi banyak file PowerPoint ke PDF secara massal?
Ya, Aspose.Slides mendukung konversi batch banyak file PPT atau PPTX ke PDF. Anda dapat mengiterasi file-file Anda dan menerapkan proses konversi secara programatik.
Apakah dapat memberi password pada PDF yang telah dikonversi?
Ya. Gunakan kelas PdfOptions untuk menetapkan password dan mendefinisikan izin akses selama proses konversi.
Bagaimana cara menyertakan slide tersembunyi dalam PDF?
Gunakan metode setShowHiddenSlides pada kelas PdfOptions untuk menyertakan slide tersembunyi dalam PDF yang dihasilkan.
Apakah Aspose.Slides dapat mempertahankan kualitas gambar tinggi dalam PDF?
Ya, Anda dapat mengontrol kualitas gambar dengan menggunakan metode seperti setJpegQuality dan setSufficientResolution pada kelas PdfOptions untuk memastikan gambar berkualitas tinggi dalam PDF Anda.
Apakah Aspose.Slides mendukung standar kepatuhan PDF/A?
Ya, Aspose.Slides memungkinkan Anda mengekspor PDF yang mematuhi berbagai standar, termasuk PDF/A1a, PDF/A1b, dan PDF/UA, untuk aksesibilitas atau arsip. Pilih standar yang sesuai dan tinjau output terhadap kebutuhan Anda.