Konversi PPT dan PPTX ke PDF dalam Java [Termasuk Fitur Lanjutan]

Gambaran Umum

Mengonversi presentasi PowerPoint (PPT, PPTX, ODP, dll.) ke format PDF dalam Java menawarkan beberapa keuntungan, termasuk kompatibilitas di berbagai perangkat dan mempertahankan 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, melindungi file PDF dengan sandi, mendeteksi substitusi font, memilih slide tertentu untuk konversi, dan menerapkan standar kepatuhan pada dokumen keluaran.

Konversi PowerPoint ke PDF

Dengan menggunakan Aspose.Slides, Anda dapat mengonversi presentasi dalam format berikut ke PDF:

  • PPT
  • PPTX
  • ODP

Untuk mengonversi presentasi ke PDF, berikan nama file sebagai argumen ke kelas Presentation dan kemudian simpan presentasi sebagai PDF menggunakan metode save. Kelas Presentation menyediakan metode save yang biasanya digunakan untuk mengonversi presentasi ke PDF.

Aspose.Slides memungkinkan Anda mengonversi:

  • Seluruh presentasi ke PDF
  • Slide tertentu dari sebuah presentasi ke PDF

Aspose.Slides mengekspor presentasi ke PDF, memastikan PDF hasilnya sangat mirip dengan presentasi asli. Elemen dan atribut dirender secara akurat dalam konversi, termasuk:

  • Gambar
  • Kotak teks dan bentuk
  • Pemformatan teks
  • Pemformatan paragraf
  • Tautan hiper
  • Header dan footer
  • Bullet
  • Tabel

Konversi PowerPoint ke PDF

Proses konversi standar PowerPoint ke PDF menggunakan opsi default. Dalam hal ini, Aspose.Slides berusaha mengonversi presentasi yang diberikan ke PDF dengan pengaturan optimal pada tingkat kualitas maksimum.

Contoh berikut memuat sebuah presentasi dan menyimpan semua slide yang terlihat ke PDF menggunakan pengaturan ekspor default.

import com.aspose.slides.*;

Presentation presentation = new Presentation("PowerPoint.ppt");
try {
    presentation.save("PPT-to-PDF.pdf", SaveFormat.Pdf);
} finally {
    presentation.dispose();
}

Konversi PowerPoint ke PDF dengan Opsi

Aspose.Slides menyediakan opsi khusus—properti di bawah kelas PdfOptions—yang memungkinkan Anda menyesuaikan PDF yang dihasilkan, mengunci PDF dengan sandi, atau menentukan bagaimana proses konversi harus berjalan.

Konversi PowerPoint ke PDF dengan Opsi Khusus

Dengan menggunakan opsi konversi khusus, Anda dapat menentukan pengaturan kualitas yang diinginkan untuk gambar raster, menentukan cara penanganan metafile, mengatur tingkat kompresi untuk teks, mengonfigurasi DPI untuk gambar, dan lainnya.

Contoh berikut mengekspor sebuah presentasi ke PDF 1.5 dengan kualitas JPEG diatur ke 90, resolusi gambar diatur ke 300 DPI, metafile disimpan sebagai PNG, dan kompresi teks Flate.

import com.aspose.slides.*;

PdfOptions pdfOptions = new PdfOptions();
pdfOptions.setJpegQuality((byte)90);
pdfOptions.setSufficientResolution(300);
pdfOptions.setSaveMetafilesAsPng(true);
pdfOptions.setTextCompression(PdfTextCompression.Flate);
pdfOptions.setCompliance(PdfCompliance.Pdf15);

Presentation presentation = new Presentation("PowerPoint.pptx");

try {
    presentation.save("PowerPoint-to-PDF.pdf", SaveFormat.Pdf, pdfOptions);
} finally {
    presentation.dispose();
}

Pertahankan File OLE Tersemat sebagai Lampiran PDF

Jika sebuah presentasi berisi workbook Excel yang tersemat, Anda mungkin ingin penerima PDF dapat mengakses data workbook tersebut serta melihat slide. Panggil setIncludeOleData dengan true untuk mempertahankan file OLE tersemat sebagai lampiran dalam PDF yang dihasilkan.

Nilai default adalah false: gambar pratinjau atau ikon objek OLE dirender pada halaman PDF, tetapi file tersematnya tidak disertakan sebagai lampiran. Mengatur opsi ke true juga menyertakan data file. Pratinjau tetap menjadi representasi visual; lampiran memungkinkan penerima membuka atau menyimpan file tersemat secara terpisah. Objek OLE tidak menjadi lembar kerja Excel interaktif di halaman PDF.

Contoh berikut memuat sebuah presentasi yang sudah berisi workbook Excel tersemat dan mengekspornya ke PDF dengan workbook terlampir.

import com.aspose.slides.*;

PdfOptions pdfOptions = new PdfOptions();
pdfOptions.setIncludeOleData(true);

Presentation presentation = new Presentation("presentation.pptx");
try {
    presentation.save("presentation.pdf", SaveFormat.Pdf, pdfOptions);
} finally {
    presentation.dispose();
}

Untuk memeriksa hasilnya:

  1. Buka PDF yang diekspor dalam penampil yang mendukung lampiran file, seperti Adobe Acrobat Reader.
  2. Buka panel Attachments penampil dan temukan workbook yang tersemat.
  3. Simpan lampiran dan buka di Excel untuk memeriksa datanya, atau buka langsung jika penampil mengizinkannya. Pratinjau pada halaman PDF terpisah dari lampiran.

Konversi 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.

Contoh berikut mengekspor sebuah presentasi ke PDF, termasuk semua slide tersembunyi.

import com.aspose.slides.*;

Presentation presentation = new Presentation("PowerPoint.pptx");
try {
    PdfOptions pdfOptions = new PdfOptions();
    pdfOptions.setShowHiddenSlides(true);

    presentation.save("PowerPoint-to-PDF.pdf", SaveFormat.Pdf, pdfOptions);
} finally {
    presentation.dispose();
}

Konversi PowerPoint ke PDF yang Dilindungi Sandi

Contoh berikut mengekspor sebuah presentasi ke PDF yang memerlukan sandi password untuk dibuka. Izin akses memungkinkan pencetakan, termasuk pencetakan berkualitas tinggi.

import com.aspose.slides.*;

Presentation presentation = new Presentation("PowerPoint.pptx");
try {
    PdfOptions pdfOptions = new PdfOptions();
    pdfOptions.setPassword("password");
    pdfOptions.setAccessPermissions(PdfAccessPermissions.PrintDocument | PdfAccessPermissions.HighQualityPrint);

    presentation.save("PPTX-to-PDF.pdf", SaveFormat.Pdf, pdfOptions);
} finally {
    presentation.dispose();
}

Deteksi Substitusi Font

Aspose.Slides menyediakan metode setWarningCallback di bawah kelas PdfOptions, memungkinkan Anda mendeteksi substitusi font selama proses konversi presentasi ke PDF.

Contoh berikut mengekspor sebuah presentasi ke PDF dan mencetak peringatan substitusi font ke konsol. Peringatan dicetak hanya ketika sebuah font yang tidak tersedia digantikan selama ekspor.

import com.aspose.slides.*;

class FontSubstitutionHandler implements IWarningCallback {
    public int warning(IWarningInfo warning) {
        if (warning.getWarningType() == WarningType.DataLoss && warning.getDescription().startsWith("Font will be substituted")) {
            System.out.println("Font substitution warning: " + warning.getDescription());
        }
        return ReturnAction.Continue;
    }
}

PdfOptions pdfOptions = new PdfOptions();
pdfOptions.setWarningCallback(new FontSubstitutionHandler());

Presentation presentation = new Presentation("sample.pptx");
try {
    presentation.save("output.pdf", SaveFormat.Pdf, pdfOptions);
} finally {
    presentation.dispose();
}

Tangani Font Tanpa Gaya Tebal Khusus

Sebuah presentasi dapat menerapkan format tebal pada teks meskipun fontnya tidak memiliki tipe tebal khusus. Teks tetap dapat terlihat tebal melalui bold sintetis, yang secara artifisial menebalkan glif biasa. Jika teks tersebut terlihat terlalu berat atau tidak sesuai dengan tampilan yang diinginkan di PDF, coba panggil PdfOptions.setRasterizeUnsupportedFontStyles dengan true. Opsi ini merender teks yang terpengaruh sebagai bitmap selama ekspor PDF dan dapat memperbaiki tampilannya untuk font tertentu. Nilai defaultnya adalah false.

Presentasi contoh berisi dua kotak teks: satu dengan teks biasa dan satu dengan format tebal yang diterapkan pada font yang sama, yang tidak memiliki tipe tebal khusus. Contoh berikut memuat presentasi, mengaktifkan rasterisasi gaya font yang tidak didukung, dan mengekspornya ke PDF:

import com.aspose.slides.PdfOptions;
import com.aspose.slides.Presentation;
import com.aspose.slides.SaveFormat;

PdfOptions pdfOptions = new PdfOptions();
pdfOptions.setRasterizeUnsupportedFontStyles(true);

Presentation presentation = new Presentation("unsupported-bold.pptx");
try {
    presentation.save("rasterized.pdf", SaveFormat.Pdf, pdfOptions);
} finally {
    presentation.dispose();
}

Pratinjau berikut menunjukkan output dengan opsi dinonaktifkan dan diaktifkan. Pada contoh ini, teks tebal memiliki goresan lebih berat saat opsi dinonaktifkan. Dengan opsi diaktifkan, goresannya lebih ringan; teks biasa tidak berubah. Bandingkan hasilnya sebelum memilih pengaturan untuk presentasi Anda.

Opsi dinonaktifkan (false, default) Opsi diaktifkan (true)
PDF with unsupported font style rasterization disabled PDF with unsupported font style rasterization enabled

Dalam contoh ini, mengaktifkan opsi mengubah hanya teks tebal menjadi bitmap: tidak dapat dipilih, disalin, atau dicari sebagai teks tanpa OCR, dan tepinya tampak lebih lunak pada pembesaran 800%. Teks biasa tetap dapat dicari. Dengan opsi dinonaktifkan, kedua string tetap berupa teks.

Opsi ini merasterisasi teks yang diformat tebal ketika fontnya tidak memiliki gaya tebal khusus. Font substitution malah memilih font lain ketika yang asli tidak tersedia.

Konversi Slide Terpilih dari PowerPoint ke PDF

Contoh berikut mengekspor slide 1 dan 3 dari sebuah presentasi ke PDF. Nomor slide dalam array ini dimulai dari satu, dan presentasi input harus berisi setidaknya tiga slide.

import com.aspose.slides.*;

Presentation presentation = new Presentation("PowerPoint.pptx");
try {
    int[] slides = { 1, 3 };
    presentation.save("PPTX-to-PDF.pdf", slides, SaveFormat.Pdf);
} finally {
    presentation.dispose();
}

Konversi PowerPoint ke PDF dengan Ukuran Slide Kustom

Contoh berikut menyalin slide pertama dari sebuah presentasi ke dalam presentasi baru dengan ukuran slide 612 × 792 poin (8,5 × 11 inci). Ia menskalakan konten slide agar pas dan mengekspor slide tunggal tersebut ke PDF.

import com.aspose.slides.*;

float slideWidth = 612;
float slideHeight = 792;

Presentation presentation = new Presentation("SelectedSlides.pptx");
Presentation resizedPresentation = new Presentation();

try {
    resizedPresentation.getSlideSize().setSize(slideWidth, slideHeight, SlideSizeScaleType.EnsureFit);
    
    ISlide slide = presentation.getSlides().get_Item(0);
    resizedPresentation.getSlides().insertClone(0, slide);

    // Hapus slide kosong yang dibuat bersama presentasi baru.
    resizedPresentation.getSlides().removeAt(1);

    resizedPresentation.save("PDF_with_custom_slide_size.pdf", SaveFormat.Pdf);
} finally {
    resizedPresentation.dispose();
    presentation.dispose();
}

Konversi PowerPoint ke PDF dalam Tampilan Catatan Slide

Contoh berikut mengekspor sebuah presentasi ke PDF, menempatkan catatan pembicara tiap slide di bawah slide. Gunakan presentasi yang berisi catatan pembicara untuk melihat hasilnya.

import com.aspose.slides.*;

Presentation presentation = new Presentation("SelectedSlides.pptx");
try {
    NotesCommentsLayoutingOptions notesOptions = new NotesCommentsLayoutingOptions();
    notesOptions.setNotesPosition(NotesPositions.BottomFull);
    
    PdfOptions pdfOptions = new PdfOptions();
    pdfOptions.setSlidesLayoutOptions(notesOptions);

    presentation.save("PDF_with_notes.pdf", SaveFormat.Pdf, pdfOptions);
} finally {
    presentation.dispose();
}

Standar Aksesibilitas dan Kepatuhan untuk PDF

Aspose.Slides memungkinkan Anda menggunakan prosedur konversi yang mematuhi Pedoman Aksesibilitas Konten Web (WCAG). Anda dapat mengekspor dokumen PowerPoint ke PDF dengan menggunakan salah satu standar kepatuhan ini: PDF/A1a, PDF/A1b, dan PDF/UA.

Kode ini memperlihatkan proses konversi PowerPoint ke PDF yang menghasilkan beberapa PDF berdasarkan standar kepatuhan yang berbeda:

import com.aspose.slides.*;

Presentation presentation = new Presentation("pres.pptx");
try {
    PdfOptions pdfOptions = new PdfOptions();

    pdfOptions.setCompliance(PdfCompliance.PdfA1a);
    presentation.save("pres-a1a-compliance.pdf", SaveFormat.Pdf, pdfOptions);

    pdfOptions.setCompliance(PdfCompliance.PdfA1b);
    presentation.save("pres-a1b-compliance.pdf", SaveFormat.Pdf, pdfOptions);

    pdfOptions.setCompliance(PdfCompliance.PdfUa);
    presentation.save("pres-ua-compliance.pdf", SaveFormat.Pdf, pdfOptions);
} finally {
    presentation.dispose();
}

Catatan: Saat mengekspor ke PDF/UA, Aspose.Slides memperlakukan grafik kompleks seperti SmartArt, diagram, dan rumus sebagai satu gambar. Elemen jalur individu tidak dipertahankan sebagai konten terpisah dan dapat ditandai sebagai artefak; teks alternatif hanya disediakan untuk seluruh gambar.

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 programatis.

Apakah memungkinkan untuk melindungi PDF yang dikonversi dengan sandi?

Ya. Gunakan kelas PdfOptions untuk mengatur sandi dan menentukan izin akses selama proses konversi.

Bagaimana cara menyertakan slide tersembunyi dalam PDF?

Panggil setShowHiddenSlides dengan true dalam 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 dalam 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, memastikan dokumen Anda memenuhi persyaratan aksesibilitas dan arsip.

Sumber Daya Tambahan