JavaScript'te Sunumları Açma

Giriş

Sıfırdan PowerPoint sunumları oluşturmanın ötesinde, Aspose.Slides ayrıca mevcut sunumları açmanıza izin verir. Bir sunumu yükledikten sonra, onunla ilgili bilgileri alabilir, slayt içeriğini düzenleyebilir, yeni slaytlar ekleyebilir, mevcut slaytları kaldırabilir ve daha fazlasını yapabilirsiniz.

Sunumları Açma

Mevcut bir sunumu açmak için, Presentation sınıfını örnekleyin ve dosya yolunu yapıcıya iletin.

Aşağıdaki JavaScript örneği bir sunumu nasıl açacağınızı ve slayt sayısını nasıl alacağınızı gösterir:

// Presentation sınıfını örnekleyin ve dosya yolunu yapıcıya iletin.
let presentation = new aspose.slides.Presentation("Sample.pptx");
try {
    // Sunumdaki toplam slayt sayısını yazdır.
    console.log(presentation.getSlides().size());
} finally {
    presentation.dispose();
}

Şifre Koruması Olan Sunumları Açma

Şifre korumalı bir sunumu açmanız gerektiğinde, şifreyi LoadOptions sınıfının setPassword yöntemiyle geçirerek şifreyi çözüp yükleyebilirsiniz. Aşağıdaki JavaScript kodu bu işlemi gösterir:

let loadOptions = new aspose.slides.LoadOptions();
loadOptions.setPassword("YOUR_PASSWORD");

let presentation = new aspose.slides.Presentation("Sample.pptx", loadOptions);
try {
    // Şifreli sunum üzerinde işlemler gerçekleştir.
} finally {
    presentation.dispose();
}

Büyük Sunumları Açma

Aspose.Slides, özellikle LoadOptions sınıfındaki getBlobManagementOptions yöntemi gibi seçenekler sunarak büyük sunumları yüklemenize yardımcı olur.

Aşağıdaki JavaScript kodu, büyük bir sunumu (örneğin 2 GB) yüklemeyi gösterir:

const filePath = "LargePresentation.pptx";

let loadOptions = new aspose.slides.LoadOptions();
// KeepLocked davranışını seçin—sunum dosyası, Presentation örneğinin ömrü boyunca kilitli kalacak
// Presentation örneği, ancak dosyanın belleğe yüklenmesi veya geçici bir dosyaya kopyalanması gerekmez.
loadOptions.getBlobManagementOptions().setPresentationLockingBehavior(aspose.slides.PresentationLockingBehavior.KeepLocked);
loadOptions.getBlobManagementOptions().setTemporaryFilesAllowed(true);
loadOptions.getBlobManagementOptions().setMaxBlobsBytesInMemory(10 * 1024 * 1024); // 10 MB

let presentation = new aspose.slides.Presentation(filePath, loadOptions);
try {
    // Büyük sunum yüklendi ve düşük bellek tüketimiyle kullanılabilir.
    
    // Sunumu değiştirin.
    presentation.getSlides().get_Item(0).setName("Large presentation");

    // Sunumu başka bir dosyaya kaydedin. Bu işlem sırasında bellek tüketimi düşük kalır.
    presentation.save("LargePresentation-copy.pptx", aspose.slides.SaveFormat.Pptx);

    // Bunu yapmayın! Sunum nesnesi serbest bırakılana kadar dosya kilitli olduğu için bir I/O istisnası fırlatılacaktır.
    //fs.unlinkSync(filePath);
} finally {
    presentation.dispose();
}

// Burada yapmak sorun değil. Kaynak dosya artık sunum nesnesi tarafından kilitli değil.
fs.unlinkSync(filePath);

Harici Kaynakları Kontrol Etme

Aspose.Slides, harici kaynakları yönetmenizi sağlayan IResourceLoadingCallback arabirimini sunar. Aşağıdaki JavaScript kodu, IResourceLoadingCallback arabirimini nasıl kullanacağınızı gösterir:

const ImageLoadingHandler = java.newProxy("com.aspose.slides.IResourceLoadingCallback", {
  resourceLoading: function(args) {
        if (args.getOriginalUri().endsWith(".jpg")) {
            try {
                // Yerine kullanılacak bir görüntü yükle.
                const imageData = fs.readFileSync("aspose-logo.jpg");
                args.setData(imageData);
                return aspose.slides.ResourceLoadingAction.UserProvided;
            } catch {
                return aspose.slides.ResourceLoadingAction.Skip;
            }
        } else if (args.getOriginalUri().endsWith(".png")) {
            // Yerine kullanılacak bir URL ayarla.
            args.setUri("http://www.google.com/images/logos/ps_logo2.png");
            return aspose.slides.ResourceLoadingAction.Default;
        }
        // Diğer tüm görüntüleri atla.
        return aspose.slides.ResourceLoadingAction.Skip;
      }
});
let loadOptions = new aspose.slides.LoadOptions();
loadOptions.setResourceLoadingCallback(ImageLoadingHandler);

let presentation = new aspose.slides.Presentation("Sample.pptx", loadOptions);

Gömülü İkili Nesneler Olmadan Sunumları Yükleme

Bir PowerPoint sunumu aşağıdaki türlerde gömülü ikili nesneler içerebilir:

LoadOptions.setDeleteEmbeddedBinaryObjects yöntemini kullanarak, gömülü ikili nesne içermeyen bir sunumu yükleyebilirsiniz.

Bu yöntem, potansiyel olarak kötü niyetli ikili içeriği kaldırmak için yararlıdır. Aşağıdaki JavaScript kodu, gömülü ikili içerik olmadan bir sunumu nasıl yükleyeceğinizi gösterir:

let loadOptions = new aspose.slides.LoadOptions();
loadOptions.setDeleteEmbeddedBinaryObjects(true);

let presentation = new aspose.slides.Presentation("malware.ppt", loadOptions);
try {
    // Sunum üzerinde işlemler gerçekleştir.
} finally {
    presentation.dispose();
}

SSS

Dosyanın bozuk olduğunu ve açılamadığını nasıl anlayabilirim?

Yükleme sırasında bir ayrıştırma/biçim doğrulama istisnası alırsınız. Bu tür hatalar genellikle geçersiz bir ZIP yapısı veya bozuk PowerPoint kayıtlarından bahseder.

Açılışta gerekli yazı tipleri eksik olursa ne olur?

Dosya açılacak, ancak daha sonra rendering/export yazı tiplerini değiştirebilir. Çalışma zamanına yazı tipi ikamelerini yapılandırın veya gerekli yazı tiplerini ekleyin.

Açılışta gömülü medya (video/ses) ile ne olur?

Bunlar sunum kaynakları olarak kullanılabilir hale gelir. Medya dış yollarla referans edilirse, bu yolların ortamınızda erişilebilir olduğundan emin olun; aksi takdirde rendering/export medya atlayabilir.