Simpan Presentasi di Java

Gambaran Umum

Buka Presentasi di Java menjelaskan cara menggunakan kelas Presentation untuk membuka sebuah presentasi. Artikel ini menjelaskan cara membuat dan menyimpan presentasi. Kelas Presentation berisi konten presentasi. Apakah Anda membuat presentasi dari awal atau memodifikasi yang sudah ada, Anda perlu menyimpannya setelah selesai. Dengan Aspose.Slides for Java, Anda dapat menyimpan ke file atau stream. Artikel ini menjelaskan berbagai cara menyimpan presentasi.

Simpan Presentasi ke File

Simpan presentasi ke file dengan memanggil metode save milik kelas Presentation. Berikan nama file dan format penyimpanan ke metode tersebut. Contoh berikut menunjukkan cara menyimpan presentasi dengan Aspose.Slides.

import com.aspose.slides.*;

// Instansiasi kelas Presentation yang mewakili sebuah file presentasi.
Presentation presentation = new Presentation();
try {
    // Lakukan beberapa pekerjaan di sini...

    // Simpan presentasi ke sebuah file.
    presentation.save("Output.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Simpan Presentasi ke Stream

Anda dapat menyimpan presentasi ke stream dengan memberikan output stream ke metode save milik kelas Presentation. Presentasi dapat ditulis ke berbagai tipe stream. Pada contoh di bawah, kami membuat presentasi baru dan menyimpannya ke file stream.

import com.aspose.slides.*;
import java.io.FileOutputStream;
import java.io.OutputStream;

// Instansiasi kelas Presentation yang mewakili sebuah file presentasi.
Presentation presentation = new Presentation();
try {
    OutputStream fileStream = new FileOutputStream("Output.pptx");
    try {
        // Simpan presentasi ke stream.
        presentation.save(fileStream, SaveFormat.Pptx);
    } finally {
        fileStream.close();
    }
} finally {
    presentation.dispose();
}

Simpan Presentasi dengan Tipe Tampilan yang Telah Ditentukan

Aspose.Slides memungkinkan Anda mengatur tampilan awal yang digunakan PowerPoint saat presentasi yang dihasilkan dibuka melalui kelas ViewProperties. Gunakan metode setLastView dengan nilai dari enumerasi ViewType.

import com.aspose.slides.*;

Presentation presentation = new Presentation();
try {
    presentation.getViewProperties().setLastView(ViewType.SlideMasterView);
    presentation.save("SlideMasterView.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Simpan Presentasi dalam Format Strict Office Open XML

Aspose.Slides memungkinkan Anda menyimpan presentasi dalam format Strict Office Open XML. Gunakan kelas PptxOptions dan atur properti conformance-nya saat menyimpan. Jika Anda menetapkan Conformance.Iso29500_2008_Strict, file output disimpan dalam format Strict Office Open XML.

Contoh di bawah membuat presentasi dan menyimpannya dalam format Strict Office Open XML.

import com.aspose.slides.*;

PptxOptions options = new PptxOptions();
options.setConformance(Conformance.Iso29500_2008_Strict);

// Instansiasi kelas Presentation yang mewakili sebuah file presentasi.
Presentation presentation = new Presentation();
try {
    // Simpan presentasi dalam format Strict Office Open XML.
    presentation.save("StrictOfficeOpenXml.pptx", SaveFormat.Pptx, options);
} finally {
    presentation.dispose();
}

Simpan Presentasi dalam Format Office Open XML dalam Mode Zip64

File Office Open XML adalah arsip ZIP yang memberlakukan batas 4 GB (2^32 byte) pada ukuran tidak terkompresi setiap file, ukuran terkompresi setiap file, dan total ukuran arsip, serta membatasi arsip hingga 65.535 (2^16‑1) file. Ekstensi format ZIP64 meningkatkan batas ini menjadi 2^64.

Metode IPptxOptions.setZip64Mode memungkinkan Anda memilih kapan menggunakan ekstensi format ZIP64 saat menyimpan file Office Open XML.

Metode ini dapat digunakan dengan mode berikut:

  • IfNecessary menggunakan ekstensi format ZIP64 hanya jika presentasi melebihi batas di atas. Ini adalah mode default.
  • Never tidak pernah menggunakan ekstensi format ZIP64.
  • Always selalu menggunakan ekstensi format ZIP64.

Kode berikut menunjukkan cara menyimpan presentasi sebagai file PPTX dengan ekstensi format ZIP64 diaktifkan:

import com.aspose.slides.*;

PptxOptions pptxOptions = new PptxOptions();
pptxOptions.setZip64Mode(Zip64Mode.Always);

Presentation presentation = new Presentation("Sample.pptx");
try {
    presentation.save("OutputZip64.pptx", SaveFormat.Pptx, pptxOptions);
} finally {
    presentation.dispose();
}

Simpan Presentasi dalam Format Office Open XML dengan Tingkat Kompresi

Saat bekerja dengan presentasi besar, Anda dapat menyesuaikan tingkat kompresi untuk menyeimbangkan ukuran file dan waktu pemrosesan. Berdasarkan kebutuhan Anda, mungkin Anda lebih mengutamakan pemrosesan yang lebih cepat atau file output yang lebih kecil.

Aspose.Slides menyediakan metode IPptxOptions.setCompressionLevel yang memungkinkan Anda menentukan tingkat kompresi yang digunakan saat menyimpan presentasi dalam format Office Open XML.

Tingkat kompresi berikut tersedia:

  • None: Tidak ada kompresi yang diterapkan. File disimpan sebagaimana adanya.
  • Level1: Kompresi tercepat dengan rasio kompresi terendah.
  • Level2: Kompresi lebih cepat dengan rasio kompresi sedikit lebih baik dibanding Level1.
  • Level3: Memberikan kompresi lebih baik dibanding Level2 dengan dampak sedang pada waktu pemrosesan.
  • Level4: Memberikan kompresi lebih baik dibanding Level3.
  • Level5: Memperbaiki kompresi dibanding Level4 dengan tambahan waktu pemrosesan.
  • Level6: Kompresi standar yang menawarkan keseimbangan baik antara kecepatan pemrosesan dan ukuran file. Ini merupakan tingkat kompresi default.
  • Level7: Memberikan kompresi lebih baik dibanding Level6 dengan proses yang lebih lambat.
  • Level8: Memberikan kompresi lebih baik dibanding Level7.
  • Level9: Kompresi maksimum. Menghasilkan ukuran file terkecil dengan biaya waktu pemrosesan terpanjang.

Contoh berikut menunjukkan cara menyimpan presentasi sebagai file PPTX tanpa kompresi:

import com.aspose.slides.*;

PptxOptions pptxOptions = new PptxOptions();
pptxOptions.setCompressionLevel(CompressionLevel.None);

Presentation presentation = new Presentation("Sample.pptx");
try {
    presentation.save("Sample-out.pptx", SaveFormat.Pptx, pptxOptions);
} finally {
    presentation.dispose();
}

Contoh ini menunjukkan cara menyimpan presentasi sebagai file PPTX dengan kompresi maksimum:

import com.aspose.slides.*;

PptxOptions pptxOptions = new PptxOptions();
pptxOptions.setCompressionLevel(CompressionLevel.Level9);

Presentation presentation = new Presentation("Sample.pptx");
try {
    presentation.save("Sample-level9.pptx", SaveFormat.Pptx, pptxOptions);
} finally {
    presentation.dispose();
}

Simpan Presentasi tanpa Memperbarui Thumbnail

Metode PptxOptions.setRefreshThumbnail mengontrol pembuatan thumbnail saat menyimpan presentasi ke PPTX:

  • Jika disetel ke true, thumbnail diperbarui selama penyimpanan. Ini adalah nilai default.
  • Jika disetel ke false, thumbnail saat ini dipertahankan. Jika presentasi tidak memiliki thumbnail, tidak akan dibuat thumbnail.

Pada kode di bawah, presentasi disimpan ke PPTX tanpa memperbarui thumbnailnya.

import com.aspose.slides.*;

PptxOptions pptxOptions = new PptxOptions();
pptxOptions.setRefreshThumbnail(false);

Presentation presentation = new Presentation("Sample.pptx");
try {
    presentation.save("Output.pptx", SaveFormat.Pptx, pptxOptions);
}
finally {
    presentation.dispose();
}

Simpan Pembaruan Progres dalam Persentase

Antarmuka IProgressCallback digunakan melalui metode setProgressCallback yang disediakan oleh antarmuka ISaveOptions dan kelas abstrak SaveOptions. Tetapkan implementasi IProgressCallback dengan setProgressCallback untuk menerima pembaruan progres penyimpanan dalam persentase.

Potongan kode berikut menunjukkan cara menggunakan IProgressCallback.

import com.aspose.slides.*;

class ExportProgressHandler implements IProgressCallback {
    public void reporting(double progressValue) {
        // Gunakan nilai persentase progres di sini.
        int progress = (int) progressValue;

        System.out.println(progress + "% of the file has been converted.");
    }
}

ISaveOptions saveOptions = new PdfOptions();
saveOptions.setProgressCallback(new ExportProgressHandler());

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

FAQ

Apakah “fast save” (penyimpanan inkremental) didukung sehingga hanya perubahan yang ditulis?

Tidak. Penyimpanan selalu membuat file target lengkap setiap kali; “fast save” inkremental tidak didukung.

Apakah aman untuk menyimpan instance Presentation yang sama dari beberapa thread?

Tidak. Sebuah Presentation tidak aman untuk thread; simpanlah dari satu thread saja.

Apa yang terjadi pada hyperlink dan file yang terhubung secara eksternal saat menyimpan?

Hyperlinks dipertahankan. File yang terhubung secara eksternal (misalnya video melalui jalur relatif) tidak disalin secara otomatis—pastikan jalur yang direferensikan tetap dapat diakses.

Dapatkah saya mengatur/menyimpan metadata dokumen (Penulis, Judul, Perusahaan, Tanggal)?

Ya. Properti dokumen standar didukung dan akan ditulis ke file saat disimpan.