Buka Presentasi di .NET

Introduction

Selain membuat presentasi PowerPoint dari awal, Aspose.Slides juga memungkinkan Anda membuka presentasi yang sudah ada. Setelah memuat sebuah presentasi, Anda dapat mengambil informasi tentangnya, mengedit konten slide, menambahkan slide baru, menghapus slide yang ada, dan lain‑lain.

Open Presentations

Untuk membuka presentasi yang sudah ada, buat instance kelas Presentation dan berikan jalur file ke konstruktornya.

Contoh C# berikut menunjukkan cara membuka sebuah presentasi dan mendapatkan jumlah slidennya:

// Membuat instance kelas Presentation dan memberikan jalur file ke konstruktornya.
using (Presentation presentation = new Presentation("Sample.pptx"))
{
    // Cetak jumlah total slide dalam presentasi.
    System.Console.WriteLine(presentation.Slides.Count);
}

Open Password-Protected Presentations

Ketika Anda perlu membuka presentasi yang dilindungi kata sandi, berikan kata sandi melalui properti Password dari kelas LoadOptions untuk mendekripsi dan memuatnya. Kode C# berikut mendemonstrasikan operasi ini:

LoadOptions loadOptions = new LoadOptions {Password = "YOUR_PASSWORD"};
using (Presentation presentation = new Presentation("Sample.pptx", loadOptions))
{
    // Lakukan operasi pada presentasi yang didekripsi.
}

Open Large Presentations

Aspose.Slides menyediakan opsi—khususnya properti BlobManagementOptions di kelas LoadOptions—untuk membantu Anda memuat presentasi berukuran besar.

Kode C# berikut mendemonstrasikan pemuatan presentasi besar (misalnya 2 GB):

const string filePath = "LargePresentation.pptx";

LoadOptions loadOptions = new LoadOptions
{
    BlobManagementOptions = 
    {
        // Pilih perilaku KeepLocked—file presentasi akan tetap terkunci selama masa hidup dari 
        // instance Presentation, tetapi tidak perlu dimuat ke memori atau disalin ke file sementara.
        PresentationLockingBehavior = PresentationLockingBehavior.KeepLocked,
        IsTemporaryFilesAllowed = true,
        MaxBlobsBytesInMemory = 10 * 1024 * 1024 // 10 MB
    }
};

using (Presentation presentation = new Presentation(filePath, loadOptions))
{
    // Presentasi besar telah dimuat dan dapat digunakan, sementara konsumsi memori tetap rendah.

    // Lakukan perubahan pada presentasi.
    presentation.Slides[0].Name = "Large presentation";

    // Simpan presentasi ke file lain. Konsumsi memori tetap rendah selama operasi ini.
    presentation.Save("LargePresentation-copy.pptx", SaveFormat.Pptx);

    // Jangan lakukan ini! Pengecualian I/O akan dilempar karena file terkunci sampai objek presentation dibuang.
    File.Delete(filePath);
}

// Tidak masalah melakukan ini di sini. File sumber tidak lagi terkunci oleh objek presentation.
File.Delete(filePath);

Control External Resources

Aspose.Slides menyediakan antarmuka IResourceLoadingCallback yang memungkinkan Anda mengelola sumber daya eksternal. Kode C# berikut menunjukkan cara menggunakan antarmuka IResourceLoadingCallback:

LoadOptions loadOptions = new LoadOptions();
loadOptions.ResourceLoadingCallback = new ImageLoadingHandler();

Presentation presentation = new Presentation("Sample.pptx", loadOptions);
public class ImageLoadingHandler : IResourceLoadingCallback
{
    public ResourceLoadingAction ResourceLoading(IResourceLoadingArgs args)
    {
        if (args.OriginalUri.EndsWith(".jpg"))
        {
            try
            {
                // Muat gambar pengganti.
                byte[] imageData = File.ReadAllBytes("aspose-logo.jpg");
                args.SetData(imageData);
                return ResourceLoadingAction.UserProvided;
            }
            catch (Exception)
            {
                return ResourceLoadingAction.Skip;
            }
        }
        else if (args.OriginalUri.EndsWith(".png"))
        {
            // Tetapkan URL pengganti.
            args.Uri = "http://www.google.com/images/logos/ps_logo2.png";
            return ResourceLoadingAction.Default;
        }

        // Lewati semua gambar lainnya.
        return ResourceLoadingAction.Skip;
    }
}

Load Presentations without Embedded Binary Objects

Sebuah presentasi PowerPoint dapat berisi tipe objek biner tersemat berikut:

Dengan menggunakan properti ILoadOptions.DeleteEmbeddedBinaryObjects, Anda dapat memuat presentasi tanpa objek biner tersemat apa pun.

Properti ini berguna untuk menghapus konten biner yang berpotensi berbahaya. Kode C# berikut mendemonstrasikan cara memuat presentasi tanpa konten biner tersemat:

LoadOptions loadOptions = new LoadOptions()
{
	DeleteEmbeddedBinaryObjects = true
}

using (Presentation presentation = new Presentation("malware.ppt", loadOptions))
{
    // Lakukan operasi pada presentasi.
}

FAQ

Bagaimana saya dapat mengetahui bahwa sebuah file rusak dan tidak dapat dibuka?

Anda akan mendapatkan pengecualian parsing/validasi format selama pemuatan. Kesalahan semacam ini biasanya menyebutkan struktur ZIP yang tidak valid atau catatan PowerPoint yang rusak.

Apa yang terjadi jika font yang diperlukan tidak ada saat membuka?

File akan tetap terbuka, tetapi kemudian proses rendering/export mungkin akan mengganti font. Konfigurasikan substitusi font atau tambahkan font yang diperlukan ke lingkungan runtime.

Bagaimana dengan media tersemat (video/audio) saat membuka?

Media akan tersedia sebagai sumber daya presentasi. Jika media direferensikan melalui jalur eksternal, pastikan jalur tersebut dapat diakses di lingkungan Anda; jika tidak, proses rendering/export mungkin akan mengabaikan media tersebut.