Simpan Presentasi dalam JavaScript

Gambaran Umum

Buka Presentasi dalam JavaScript menjelaskan cara menggunakan kelas Presentation untuk membuka sebuah presentasi. Artikel ini menjelaskan cara membuat dan menyimpan presentasi. Kelas Presentation berisi konten presentasi. Baik Anda membuat presentasi dari awal maupun memodifikasi yang sudah ada, Anda akan ingin menyimpannya setelah selesai. Dengan Aspose.Slides untuk Node.js, Anda dapat menyimpan ke file atau stream. Artikel ini menjelaskan berbagai cara menyimpan sebuah presentasi.

Simpan Presentasi ke File

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

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");

// Buat instance kelas Presentation yang merepresentasikan file presentasi.
let presentation = new aspose.slides.Presentation();
try {
    // Lakukan beberapa pekerjaan di sini...

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

Simpan Presentasi ke Stream

Anda dapat menyimpan sebuah presentasi ke stream dengan memberikan output stream ke metode save milik kelas Presentation. Sebuah presentasi dapat ditulis ke banyak jenis stream. Pada contoh di bawah, kami membuat presentasi baru dan menyimpannya ke file stream.

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");

// Buat instance kelas Presentation yang merepresentasikan file presentasi.
let presentation = new aspose.slides.Presentation();
try {
    let fileStream = java.newInstanceSync("java.io.FileOutputStream", "Output.pptx");
    try {
        // Simpan presentasi ke stream.
        presentation.save(fileStream, aspose.slides.SaveFormat.Pptx);
    } finally {
        fileStream.close();
    }
} finally {
    presentation.dispose();
}

Simpan Presentasi dengan Tipe Tampilan yang Ditetapkan

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

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");

let presentation = new aspose.slides.Presentation();
try {
    presentation.getViewProperties().setLastView(aspose.slides.ViewType.SlideMasterView);
    presentation.save("SlideMasterView.pptx", aspose.slides.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 mengatur Conformance.Iso29500_2008_Strict, file output akan disimpan dalam format Strict Office Open XML.

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

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");

let options = new aspose.slides.PptxOptions();
options.setConformance(aspose.slides.Conformance.Iso29500_2008_Strict);

// Buat instance kelas Presentation yang merepresentasikan file presentasi.
let presentation = new aspose.slides.Presentation();
try {
    // Simpan presentasi dalam format Strict Office Open XML.
    presentation.save("StrictOfficeOpenXml.pptx", aspose.slides.SaveFormat.Pptx, options);
} finally {
    presentation.dispose();
}

Simpan Presentasi dalam Format Office Open XML dengan Mode Zip64

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

Metode PptxOptions.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 melampaui batasan di atas. Ini adalah mode default.
  • Never tidak pernah menggunakan ekstensi format ZIP64.
  • Always selalu menggunakan ekstensi format ZIP64.

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

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");

let pptxOptions = new aspose.slides.PptxOptions();
pptxOptions.setZip64Mode(aspose.slides.Zip64Mode.Always);

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

Simpan Presentasi dalam Format Office Open XML dengan Tingkat Kompresi

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

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

Tingkat kompresi berikut tersedia:

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

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

const aspose = { slides: require("aspose.slides.via.java") };

const pptxOptions = new aspose.slides.PptxOptions();
pptxOptions.setCompressionLevel(aspose.slides.CompressionLevel.None);

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

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

const aspose = { slides: require("aspose.slides.via.java") };

const pptxOptions = new aspose.slides.PptxOptions();
pptxOptions.setCompressionLevel(aspose.slides.CompressionLevel.Level9);

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

Simpan Presentasi tanpa Memperbarui Thumbnail

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

  • Jika diatur ke true, thumbnail disegarkan selama penyimpanan. Ini adalah nilai default.
  • Jika diatur ke false, thumbnail saat ini dipertahankan. Jika presentasi tidak memiliki thumbnail, tidak ada yang dihasilkan.

Pada kode di bawah, presentasi disimpan ke PPTX tanpa memperbarui thumbnail-nya.

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");

let pptxOptions = new aspose.slides.PptxOptions();
pptxOptions.setRefreshThumbnail(false);

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

Simpan Pembaruan Progres dalam Persentase

Pelaporan kemajuan penyimpanan dikonfigurasi melalui metode setProgressCallback pada SaveOptions dan subclass-nya. Berikan proxy Java yang mengimplementasikan antarmuka IProgressCallback; selama ekspor, callback menerima pembaruan persentase secara periodik.

Potongan kode berikut menunjukkan cara menggunakan IProgressCallback.

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");

const ExportProgressHandler = java.newProxy("com.aspose.slides.IProgressCallback", {
    reporting: function(progressValue) {
        // Gunakan nilai persentase kemajuan di sini.
        const progress = Math.floor(progressValue);
        console.log(`${progress}% of the file has been converted.`);
    }
});

let saveOptions = new aspose.slides.PdfOptions();
saveOptions.setProgressCallback(ExportProgressHandler);

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

FAQ

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

Tidak. Penyimpanan membuat file target lengkap setiap kali; penyimpanan cepat inkremental tidak didukung.

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

Tidak. Sebuah Presentation tidak thread‑safe; simpanlah dari satu thread saja.

Apa yang terjadi pada tautan hiperteks dan file yang ditautkan secara eksternal saat menyimpan?

Hyperlink dipertahankan. File yang ditautkan secara eksternal (misalnya video melalui jalur relatif) tidak disalin secara otomatis—pastikan jalur yang dirujuk tetap dapat diakses.

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

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