Java'da Sunumları Aç

Giriş

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

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

Sunumları Aç

Mevcut bir sunumu açmak için, dosya yolunu Presentation yapıcısına iletin. Sunumu kullandıktan sonra dosya tutucularının, geçici verilerin ve diğer kaynakların hızlı bir şekilde serbest bırakılması için nesneyi 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ç

Açma şifresi, sunum içeriğini şifreler. Sunumu tamamen yüklemek için doğru şifreyi LoadOptions.setPassword yöntemine iletin ve seçenekleri Presentation yapıcısına sağlayın. Şifre eksik ya da yanlış 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 Password-Protect Presentations sayfasına bakın. Şifreli bir sunum, bilinçli olarak genel belge özellikleriyle kaydedildiyse, bu özellikler şifre olmadan okunabilir; ayrıntılar için Manage Presentation Properties sayfasına bakın.

Büyük Sunumları Aç

LoadOptions.getBlobManagementOptions görüntüler, ses ve video gibi büyük ikili nesnelerin nasıl işleneceğini kontrol eden seçenekleri döndürür. Kaynak dosyayı kilitli tutabilir, geçici dosyalara izin verebilir ve bellekte tutulacak BLOB verisinin miktarını sınırlayabilirsiniz.

Aşağıdaki Java kodu, büyük bir sunumu (örneğin 2 GB) yüklemeyi 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 Et

LoadOptions.setResourceLoadingCallback bir IResourceLoadingCallback uygulaması kabul eder. Geri arama, yedek veri sağlayabilir, bir kaynağı yeniden 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 harici görseller içerdiği durumlarda kullanışlı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();
}

Yerleşik İkili Nesneler Olmadan Sunumları Yükle

Bir sunum, uygulamanın ihtiyaç duymadığı veya tutmak istemediği yerleşik ikili veri içerebilir. Örnekler:

LoadOptions.setDeleteEmbeddedBinaryObjects seçeneğini true olarak ayarladığınızda, bu ikili veri yükleme sırasında silinir. Temizlenmiş sonucu kalıcı hâle getirmek için yüklenen sunumu kaydedin.

Bu seçenek, istenmeyen yerleşik yükleri azaltır, ancak tam bir kötü amaçlı yazılım tespiti 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ı, yanlış şifre hatasından ayrı şekilde ele alın, böylece uygulama nedeni doğru şekilde raporlayabilir.

Gerekli fontlar eksik olduğunda ne olur?

Sunum hâlâ yüklenebilir, fakat render ve dışa aktarma sırasında fontlar değiştirilebilir. Çıktıyı daha öngörülebilir hâle getirmek için font ikamesi yapılandırmasını yapabilir veya özel fontlar sağlayabilirsiniz.

Bir sunumu yüklemek, yerleşik medyasını da yükler mi?

Yerleşik ses ve video, sunum nesne modeli aracılığıyla kullanılabilir hâle gelir. Harici kaynaklar, yapılandırılmış kaynak‑yükleme davranışına göre çözülür ve konumlarına erişilemezse kullanılamaz olabilir.