Java'da Sunumları Açma

Giriş

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

Sunumları Açma

Mevcut bir sunumu açmak için, Presentation sınıfının bir örneğini oluşturun ve dosya yolunu yapıcıya geçirin.

İşte aşağıdaki Java örneği, bir sunumu nasıl açıp slayt sayısını alabileceğinizi gösterir:

// Sunum sınıfını örnekleyin ve yapıcıya bir dosya yolu geçirin.
Presentation presentation = new Presentation("Sample.pptx");
try {
    // Sunumdaki toplam slayt sayısını yazdırın.
    System.out.println(presentation.getSlides().size());
} finally {
    presentation.dispose();
}

Şifre Korumasına Sahip Sunumları Açma

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

LoadOptions loadOptions = new LoadOptions();
loadOptions.setPassword("YOUR_PASSWORD");

Presentation presentation = new Presentation("Sample.pptx", loadOptions);
try {
    // Şifre çözülmüş sunum üzerinde işlemler gerçekleştir.
} finally {
    presentation.dispose();
}

Büyük Sunumları Açma

Aspose.Slides, büyük sunumları yüklemenize yardımcı olmak için seçenekler sunar—özellikle LoadOptions sınıfındaki getBlobManagementOptions yöntemi.

Aşağıdaki Java kodu, büyük bir sunumun (örneğin 2 GB) nasıl yükleneceğini gösterir:

final String filePath = "LargePresentation.pptx";

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

Presentation presentation = new Presentation(filePath, loadOptions);
try {
    // Büyük sunum yüklendi ve kullanılabilir, bellek tüketimi düşük kalır.

    // Sunuma değişiklik yapın.
    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", SaveFormat.Pptx);

    // Bunu yapmayın! Dosya, sunum nesnesi dispose edilene kadar kilitli olduğu için bir I/O istisnası oluşur.
    //Files.delete(Paths.get(filePath));
} finally {
    presentation.dispose();
}

// Burada yapmak uygundur. Kaynak dosya artık sunum nesnesi tarafından kilitlenmemiştir.
Files.delete(Paths.get(filePath));

Harici Kaynakları Kontrol Etme

Aspose.Slides, harici kaynakları yönetmenizi sağlayan IResourceLoadingCallback arayüzünü sunar. Aşağıdaki Java kodu, IResourceLoadingCallback arayüzünün nasıl kullanılacağını gösterir:

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

Presentation presentation = new Presentation("Sample.pptx", loadOptions);
class ImageLoadingHandler implements IResourceLoadingCallback {
    public int resourceLoading(IResourceLoadingArgs args) {
        if (args.getOriginalUri().endsWith(".jpg")) {
            try {
                // Yerine geçecek bir görüntü yükle.
                byte[] imageData = Files.readAllBytes(new File("aspose-logo.jpg").toPath());
                args.setData(imageData);
                return ResourceLoadingAction.UserProvided;
            } catch (RuntimeException ex) {
                return ResourceLoadingAction.Skip;
            }  catch (IOException ex) {
                ex.printStackTrace();
            }
        } else if (args.getOriginalUri().endsWith(".png")) {
            // Yerine geçecek bir URL ayarla.
            args.setUri("http://www.google.com/images/logos/ps_logo2.png");
            return ResourceLoadingAction.Default;
        }
        // Diğer tüm görüntüleri atla.
        return ResourceLoadingAction.Skip;
    }
}

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

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

ILoadOptions.setDeleteEmbeddedBinaryObjects yöntemini kullanarak, gömülü ikili nesneler olmadan bir sunum yükleyebilirsiniz.

Bu yöntem, potansiyel olarak zararlı ikili içeriği kaldırmak için faydalıdır. Aşağıdaki Java kodu, gömülü ikili içerik olmadan bir sunumun nasıl yükleneceğini gösterir:

LoadOptions loadOptions = new LoadOptions();
loadOptions.setDeleteEmbeddedBinaryObjects(true);

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

SSS

Bir 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ı ya da bozuk PowerPoint kayıtlarından bahseder.

Açarken gerekli yazı tipleri eksikse ne olur?

Dosya açılır, 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 ekleyin.

Açarken gömülü medya (video/ses) ne olur?

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