Java'da Sunumları Açma

Giriş

Aspose.Slides for Java dosyalar ve akışlar üzerinden PowerPoint ve OpenDocument sunumlarını yükleyebilir. Bir sunum yüklendikten sonra yapısını inceleyebilir, slaytları düzenleyebilir, kaynakları yönetebilir ve orijinal ya da başka bir desteklenen formatta kaydedebilirsiniz.

Yükleme davranışı, LoadOptions sınıfı aracılığıyla özelleştirilebilir. Örneğin bir açma şifresi sağlayabilir, büyük ikili nesneleri Java yığın belleği dışında tutabilir, dış kaynakları kontrol edebilir veya gömülü ikili verileri atlayabilirsiniz.

Sunumları Açma

Bir dosya ya da akış yüklendikten sonra, uygulamanızın nasıl işleyeceğini belirlemek için orijinal sunum formatını belirleyin.

Mevcut bir sunumu açmak için dosya yolunu Presentation yapıcısına geçirin. Dosya tutamaçları, geçici veriler ve diğer kaynakların derhal serbest bırakılması için sunumu kullandıktan sonra serbest bırakın.

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

import com.aspose.slides.Presentation;

Presentation presentation = new Presentation("sample.pptx");
try {
    System.out.println("Slide count: " + presentation.getSlides().size());
} finally {
    presentation.dispose();
}

Şifre Koruması Olan Sunumları Açma

Açma şifresi, sunum içeriğini şifreler. Tam sunumu yüklemek için doğru şifreyi LoadOptions.setPassword metoduna geçirin ve seçenekleri Presentation yapıcısına sağlayın. Şifre eksik veya hatalı olduğunda yükleme başarısız olur.

import com.aspose.slides.LoadOptions;
import com.aspose.slides.Presentation;

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

Presentation presentation = new Presentation("encrypted-presentation.pptx", loadOptions);
try {
    System.out.println("Slide count: " + presentation.getSlides().size());
} finally {
    presentation.dispose();
}

Şifre algılama, doğrulama ve şifreleme iş akışları için Sunumları Şifreyle Koruma bölümüne bakın. Şifrelenmiş bir sunum, kasıtlı olarak genel belge özellikleriyle kaydedildiyse, bu özellikler şifresiz olarak okunabilir; ayrıntılar için Sunum Özelliklerini Yönetme bölümüne bakın.

Büyük Sunumları Açma

LoadOptions.getBlobManagementOptions yöntemi, Aspose.Slides’ın resimler, ses ve video gibi büyük ikili nesneleri nasıl yöneteceğini kontrol eden seçenekleri döndürür. Kaynak dosyayı kilitli tutabilir, geçici dosyalara izin verebilir ve bellekte tutulan BLOB verisinin miktarını sınırlayabilirsiniz.

Aşağıdaki Java kodu büyük bir sunumu (örneğin 2 GB) nasıl yükleyeceğinizi gösterir:

import com.aspose.slides.LoadOptions;
import com.aspose.slides.Presentation;
import com.aspose.slides.PresentationLockingBehavior;
import com.aspose.slides.SaveFormat;

final String filePath = "large-presentation.pptx";

LoadOptions loadOptions = new LoadOptions();
loadOptions.getBlobManagementOptions().setPresentationLockingBehavior(PresentationLockingBehavior.KeepLocked);
loadOptions.getBlobManagementOptions().setTemporaryFilesAllowed(true);
loadOptions.getBlobManagementOptions().setMaxBlobsBytesInMemory(10 * 1024 * 1024);

Presentation presentation = new Presentation(filePath, loadOptions);
try {
    presentation.getSlides().get_Item(0).setName("Large presentation");
    presentation.save("large-presentation-copy.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Harici Kaynakları Kontrol Etme

LoadOptions.setResourceLoadingCallback metodu, bir IResourceLoadingCallback uygulaması kabul eder. Geri arama, değiştirme verisi sağlayabilir, bir kaynağı yönlendirebilir, varsayılan yükleyiciyi kullanabilir veya kaynağı atlayabilir. Bu, sunumların uygulamaya özgü güvenlik veya depolama kurallarına göre çözülmesi gereken dış görüntüler içermesi durumunda faydalıdır.

import com.aspose.slides.IResourceLoadingArgs;
import com.aspose.slides.IResourceLoadingCallback;
import com.aspose.slides.LoadOptions;
import com.aspose.slides.Presentation;
import com.aspose.slides.ResourceLoadingAction;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Locale;

class ImageLoadingHandler implements IResourceLoadingCallback {
    public int resourceLoading(IResourceLoadingArgs args) {
        boolean isJpeg = args.getOriginalUri().toLowerCase(Locale.ROOT).endsWith(".jpg");
        Path approvedImagePath = Paths.get("approved-image.jpg");
        if (!isJpeg || !Files.exists(approvedImagePath)) {
            return ResourceLoadingAction.Skip;
        }

        try {
            byte[] imageData = Files.readAllBytes(approvedImagePath);
            args.setData(imageData);
            return ResourceLoadingAction.UserProvided;
        } catch (IOException exception) {
            System.err.println("The approved replacement image could not be read.");
            return ResourceLoadingAction.Skip;
        }
    }
}

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

Presentation presentation = new Presentation("presentation-with-external-images.pptx", loadOptions);
try {
    System.out.println("Slide count: " + presentation.getSlides().size());
} finally {
    presentation.dispose();
}

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

Bir sunum, uygulamanın ihtiyaç duymadığı veya tutmak istemediği gömülü ikili veriler içerebilir. Örnekler:

LoadOptions.setDeleteEmbeddedBinaryObjects seçeneğini true olarak ayarlayın; bu, yükleme sırasında bu ikili verileri kaldırır. Temizlenmiş sonucu kalıcı hâle getirmek için yüklü sunumu kaydedin.

Bu seçenek istenmeyen gömülü yükleri azaltır, ancak tam bir kötü amaçlı yazılım tespit veya içerik temizleme sistemi değildir.

import com.aspose.slides.LoadOptions;
import com.aspose.slides.Presentation;
import com.aspose.slides.SaveFormat;

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

Presentation presentation = new Presentation("presentation-with-embedded-data.pptx", loadOptions);
try {
    presentation.save("presentation-without-embedded-data.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

SSS

Bir dosyanın bozuk olduğunu ve açılamadığını nasıl anlayabilirim?
Aspose.Slides, yükleme sırasında bir ayrıştırma veya format istisnası fırlatır. Bu hatayı, hatalı şifre hatasından ayrı olarak ele alın; böylece uygulama nedeni doğru bir şekilde raporlayabilir.

Gerekli yazı tipleri eksik olursa ne olur?
Sunum yine de yüklenebilir, ancak render ve dışa aktarma sırasında yazı tipleri değiştirilebilir. Çıktıyı daha öngörülebilir hâle getirmek için yazı tipi ikamesini yapılandırın veya özel yazı tipleri sağlayın.

Bir sunumu yüklemek, gömülü medyasını da yüklüyor mu?
Gömülü ses ve video, sunum nesne modeli aracılığıyla erişilebilir hale gelir. Dış kaynaklar, yapılandırılmış kaynak‑yükleme davranışına göre çözülür ve konumlarına erişilemezse bulunamaz.