Konversi PPT dan PPTX ke PDF di Java [Fitur Lanjutan Disertakan]

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 format presentasi Anda. Panduan ini menunjukkan cara mengonversi presentasi ke dokumen PDF, menggunakan berbagai opsi untuk mengendalikan kualitas gambar, menyertakan slide tersembunyi, melindungi file PDF dengan kata sandi, mendeteksi substitusi font, memilih slide tertentu untuk konversi, dan menerapkan standar kepatuhan pada dokumen keluaran.

Konversi PowerPoint 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 yang dihasilkan sangat mirip dengan presentasi asli. Elemen dan atribut dirender dengan akurat dalam konversi, termasuk:

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

Konversi PowerPoint ke PDF

Proses konversi standar PowerPoint-ke-PDF menggunakan opsi default. Dalam hal ini, Aspose.Slides mencoba 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 pada kelas PdfOptions—yang memungkinkan Anda menyesuaikan PDF yang dihasilkan, mengunci PDF dengan kata sandi, atau menentukan cara proses konversi harus dijalankan.

Konversi PowerPoint ke PDF dengan Opsi Kustom

Dengan menggunakan opsi konversi kustom, Anda dapat menentukan pengaturan kualitas yang diinginkan untuk gambar raster, menentukan cara metafile diproses, mengatur tingkat kompresi untuk teks, mengonfigurasi DPI untuk gambar, dan lain-lain.

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();
}

Pilih Kompresi Gambar Secara Otomatis

Ketika sebuah presentasi berisi banyak foto atau tangkapan layar, mengurangi ukuran PDF yang diekspor dapat memudahkan pengiriman email atau pengunduhan. Panggil PdfOptions.setBestImagesCompressionRatio dengan true untuk secara otomatis memilih algoritma kompresi paling sesuai untuk setiap gambar selama ekspor PDF.

Contoh berikut memuat presentasi yang ada, mengaktifkan pemilihan kompresi gambar otomatis, dan menyimpannya sebagai dokumen PDF. Semua pengaturan ekspor PDF lainnya mempertahankan nilai defaultnya.

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

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

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

Opsi ini memilih algoritma kompresi untuk setiap gambar. Menurunkan nilai yang diberikan ke setJpegQuality akan mengurangi kualitas gambar JPEG, sedangkan menurunkan nilai yang diberikan ke setSufficientResolution memungkinkan gambar diturunkan resolusinya, yang dapat mengurangi detail. Mengaktifkan pemilihan kompresi otomatis tidak secara otomatis menurunkan salah satu pengaturan ini.

Memilih algoritma kompresi gambar memerlukan waktu pemrosesan dan memori tambahan. Pengurangan ukuran tergantung pada gambar presentasi dan pengaturan ekspor; pengurangan tetap tidak dijamin untuk setiap presentasi.

Pertahankan File OLE Tersemat sebagai Lampiran PDF

Jika sebuah presentasi berisi workbook Excel yang tersemat, Anda mungkin ingin penerima PDF 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 termasuk sebagai lampiran. Mengatur opsi ke true tambahan 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 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 memperbolehkan. Pratinjau di 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 Kata Sandi

Contoh berikut mengekspor sebuah presentasi ke PDF yang memerlukan kata sandi password untuk dibuka. Izin akses mengizinkan 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 pada kelas PdfOptions yang 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 font yang tidak tersedia disubstitusi 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();
}

Menangani Font Tanpa Gaya Bold Khusus

Sebuah presentasi dapat menerapkan format bold pada teks meskipun fontnya tidak memiliki gaya bold khusus. Teks tersebut masih dapat terlihat bold melalui bold sintetis, yang secara artifisial menebalkan glyph biasa. Ketika teks itu tampak terlalu berat atau berbeda dari tampilan yang diinginkan di PDF, coba panggil PdfOptions.setRasterizeUnsupportedFontStyles dengan true. Opsi ini merender teks yang terpengaruh sebagai bitmap selama ekspor PDF dan dapat meningkatkan penampilannya untuk font tertentu. Nilai defaultnya adalah false.

Presentasi contoh berisi dua kotak teks: satu dengan teks reguler dan satu dengan format bold yang diterapkan pada font yang sama, yang tidak memiliki gaya bold 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 keluaran dengan opsi dinonaktifkan dan diaktifkan. Dalam contoh ini, teks bold memiliki goresan lebih tebal saat opsi dinonaktifkan. Dengan opsi diaktifkan, goresannya lebih ringan; teks reguler tetap tidak berubah. Bandingkan hasil 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 bold menjadi bitmap: tidak dapat dipilih, disalin, atau dicari sebagai teks tanpa OCR, dan tepinya terlihat lebih lembut pada zoom 800%. Teks reguler tetap dapat dicari. Dengan opsi dinonaktifkan, kedua string tetap berupa teks.

Opsi ini merasterisasi teks yang diformat sebagai bold ketika fontnya tidak memiliki gaya bold khusus. Font substitution justru 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 memiliki 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 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 pada 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 setiap 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 menggunakan salah satu standar kepatuhan berikut: 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 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 formula sebagai satu gambar. Elemen jalur individual tidak dipertahankan sebagai konten terpisah dan dapat ditandai sebagai artefak; teks alternatif hanya disediakan untuk seluruh gambar.

FAQ

Bisakah saya mengonversi beberapa file PowerPoint ke PDF sekaligus?

Ya, Aspose.Slides mendukung konversi batch banyak file PPT atau PPTX ke PDF. Anda dapat mengulangi file Anda dan menerapkan proses konversi secara programatis.

Apakah memungkinkan untuk melindungi PDF yang dikonversi dengan kata sandi?

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

Bagaimana cara menyertakan slide tersembunyi dalam PDF?

Panggil setShowHiddenSlides dengan true pada kelas PdfOptions untuk menyertakan slide tersembunyi dalam PDF yang dihasilkan.

Apakah Aspose.Slides dapat mempertahankan kualitas gambar tinggi dalam PDF?

Ya, Anda dapat mengendalikan kualitas gambar dengan menggunakan metode seperti setJpegQuality dan setSufficientResolution pada kelas PdfOptions untuk memastikan gambar berkualitas tinggi di 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