JavaScript'te Sunumları Açma
Giriş
Aspose.Slides for Node.js via Java dosyalar ve akışlardan 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 desteklenen formatta kaydedebilirsiniz.
Yükleme davranışı, LoadOptions sınıfı aracılığıyla özelleştirilebilir. Örneğin, bir açma parolası sağlayabilir, büyük ikili nesneleri Node.js belleği dışında tutabilir, harici kaynakları kontrol edebilir veya gömülü ikili verileri dışarıda bırakabilirsiniz.
Sunumları Açma
Bir dosya veya akış yüklendikten sonra, uygulamanızın nasıl işleyeceğini seçmek için orijinal sunum formatını belirleyebilirsiniz.
Mevcut bir sunumu açmak için, dosya yolunu Presentation yapıcısına geçirin. Sunumu kullandıktan sonra dosya tanıtıcıları, geçici veriler ve diğer kaynakların hızlıca serbest bırakılması için sunumu serbest bırakın.
Aşağıdaki JavaScript örneği, bir sunumu nasıl açıp slayt sayısını alabileceğinizi gösterir:
const slides = require("aspose.slides.via.java");
const presentation = new slides.Presentation("sample.pptx");
try {
console.log("Slide count: " + presentation.getSlides().size());
} finally {
presentation.dispose();
}
Parola Korumalı Sunumları Açma
Açma parolası, sunum içeriğini şifreler. Tam sunumu yüklemek için doğru parolayı LoadOptions.setPassword metoduna geçirin ve seçenekleri Presentation yapıcısına sağlayın. Parola eksik veya hatalı olduğunda yükleme başarısız olur.
const slides = require("aspose.slides.via.java");
const loadOptions = new slides.LoadOptions();
loadOptions.setPassword("open_password");
const presentation = new slides.Presentation("encrypted-presentation.pptx", loadOptions);
try {
console.log("Slide count: " + presentation.getSlides().size());
} finally {
presentation.dispose();
}
Parola algılama, doğrulama ve şifreleme iş akışları için Password-Protect Presentations sayfasına bakın. Şifreli bir sunum, bilinçli olarak herkese açık belge özellikleriyle kaydedildiyse, bu özellikler parola olmadan okunabilir; bkz. Manage Presentation Properties.
Büyük Sunumları Açma
LoadOptions.getBlobManagementOptions, Aspose.Slides’in görüntüler, ses ve video gibi büyük ikili nesneleri (BLOB) nasıl yönettiğ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 JavaScript kodu, büyük bir sunumu (örneğin 2 GB) nasıl yükleyeceğinizi gösterir:
const slides = require("aspose.slides.via.java");
const filePath = "large-presentation.pptx";
const loadOptions = new slides.LoadOptions();
loadOptions.getBlobManagementOptions().setPresentationLockingBehavior(slides.PresentationLockingBehavior.KeepLocked);
loadOptions.getBlobManagementOptions().setTemporaryFilesAllowed(true);
loadOptions.getBlobManagementOptions().setMaxBlobsBytesInMemory(10 * 1024 * 1024);
const presentation = new slides.Presentation(filePath, loadOptions);
try {
presentation.getSlides().get_Item(0).setName("Large presentation");
presentation.save("large-presentation-copy.pptx", slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Note
PresentationLockingBehavior.KeepLocked ile, kaynak dosya sunum örneği serbest bırakılana kadar kilitli kalır. Bu örnek hâlâ aktifken kaynak dosyayı taşımayın, üzerine yazmayın veya silmeyin.
Aspose.Slides, yükleme sırasında bir giriş akışının içeriğini kopyalayabilir. Büyük sunumlar için bu nedenle dosya yolu, akışa göre genellikle daha verimlidir. Ek depolama ve bellek yönetimi seçenekleri için Manage BLOBs sayfasına bakın.
Harici Kaynakları Kontrol Etme
LoadOptions.setResourceLoadingCallback bir IResourceLoadingCallback uygulamasını kabul eder. Geri çağırma, yerine geçecek veri sağlayabilir, bir kaynağı yeniden yönlendirebilir, varsayılan yükleyiciyi kullanabilir veya kaynağı atlayabilir. Bu, sunumlarda uygulamaya özgü güvenlik veya depolama kurallarına göre çözülmesi gereken harici görüntüler bulunduğunda yararlıdır.
const slides = require("aspose.slides.via.java");
const fs = require("fs");
const java = require("java");
const imageLoadingHandler = java.newProxy("com.aspose.slides.IResourceLoadingCallback", {
resourceLoading: function(args) {
const isJpeg = args.getOriginalUri().toLowerCase().endsWith(".jpg");
const approvedImagePath = "approved-image.jpg";
if (!isJpeg || !fs.existsSync(approvedImagePath)) {
return slides.ResourceLoadingAction.Skip;
}
try {
const imageData = fs.readFileSync(approvedImagePath);
args.setData(imageData);
return slides.ResourceLoadingAction.UserProvided;
} catch (error) {
console.error("The approved replacement image could not be read.");
return slides.ResourceLoadingAction.Skip;
}
}
});
const loadOptions = new slides.LoadOptions();
loadOptions.setResourceLoadingCallback(imageLoadingHandler);
const presentation = new slides.Presentation("presentation-with-external-images.pptx", loadOptions);
try {
console.log("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 veri içerebilir. Örnekler:
- VBA projeleri, Presentation.getVbaProject üzerinden erişilebilir;
- gömülü OLE verileri, OleEmbeddedDataInfo.getEmbeddedFileData üzerinden erişilebilir;
- ActiveX kontrol verileri, Control.getActiveXControlBinary üzerinden erişilebilir.
Yükleme sırasında bu ikili verileri kaldırmak için LoadOptions.setDeleteEmbeddedBinaryObjects değerini true olarak ayarlayın. Temizlenmiş sonucu kalıcı hale getirmek için yüklenen sunumu kaydedin.
Bu seçenek, istenmeyen gömülü yüklerden maruziyeti azaltır, ancak tam bir kötü amaçlı yazılım tespiti veya içerik temizleme sistemi değildir.
const slides = require("aspose.slides.via.java");
const loadOptions = new slides.LoadOptions();
loadOptions.setDeleteEmbeddedBinaryObjects(true);
const presentation = new slides.Presentation("presentation-with-embedded-data.pptx", loadOptions);
try {
presentation.save("presentation-without-embedded-data.pptx", slides.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ı parola hatasından ayrı şekilde ele alın; böylece uygulama nedeni doğru şekilde raporlayabilir.
Gerekli yazı tipleri eksik olduğunda ne olur?
Sunum yine de yüklenebilir, ancak renderleme ve dışa aktarma sırasında yazı tipleri değiştirilebilir. Çıktıyı daha öngörülebilir hâle getirmek için font değiştirmeyi yapılandırabilirsiniz veya özel yazı tipleri sağlayabilirsiniz.
Bir sunumu yüklemek, gömülü medyalarını da yükler mi?
Gömülü ses ve video, sunum nesne modeli üzerinden kullanılabilir hale 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.