PHP'de Sunumları Kaydet
Genel Bakış
Open Presentations in PHP sunumu açmak için Presentation sınıfının nasıl kullanılacağını açıkladı. Bu makale, sunumları nasıl oluşturup kaydedeceğinizi anlatır. Presentation sınıfı bir sunumun içeriğini tutar. Sıfırdan bir sunum oluşturuyor ya da mevcut bir sunumu değiştiriyor olun, işiniz bittiğinde kaydetmek istersiniz. Aspose.Slides for PHP ile bir dosyaya ya da akışa kaydedebilirsiniz. Bu makale, bir sunumu kaydetmenin farklı yollarını açıklar.
Sunumları Dosyalara Kaydetme
Presentation sınıfının save yöntemini çağırarak bir sunumu dosyaya kaydedin. Dosya adını ve kaydetme biçimini metoda geçin. Aşağıdaki örnek, Aspose.Slides ile bir sunumu nasıl kaydedeceğinizi gösterir.
// Sunum dosyasını temsil eden Presentation sınıfını örnekleyin.
$presentation = new Presentation();
try {
// Burada bazı işlemler yapın...
// Sunumu bir dosyaya kaydedin.
$presentation->save("Output.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
Sunumları Akışlara Kaydetme
Presentation sınıfının save yöntemine bir çıktı akışı geçirerek bir sunumu akışa kaydedebilirsiniz. Bir sunum birçok akış türüne yazılabilir. Aşağıdaki örnekte yeni bir sunum oluşturup bir dosya akışına kaydediyoruz.
// Sunum dosyasını temsil eden Presentation sınıfını örnekleyin.
$presentation = new Presentation();
try {
$fileStream = new Java("java.io.FileOutputStream", "Output.pptx");
try {
// Sunumu akışa kaydedin.
$presentation->save($fileStream, SaveFormat::Pptx);
} finally {
$fileStream->close();
}
} finally {
$presentation->dispose();
}
Önceden Tanımlı Görünüm Türüyle Sunumları Kaydetme
Aspose.Slides, oluşturulan sunum açıldığında PowerPoint’in kullandığı ilk görünümü ViewProperties sınıfı aracılığıyla ayarlamanıza izin verir. ViewType enum değerlerinden birini kullanarak setLastView yöntemini çağırın.
$presentation = new Presentation();
try {
$presentation->getViewProperties()->setLastView(ViewType::SlideMasterView);
$presentation->save("SlideMasterView.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
Sıkı Office Open XML Biçiminde Sunumları Kaydetme
Aspose.Slides, bir sunumu Sıkı Office Open XML biçiminde kaydetmenize olanak tanır. Kaydederken PptxOptions sınıfını kullanın ve conformance özelliğini ayarlayın. Eğer Conformance.Iso29500_2008_Strict ayarlanırsa çıktı dosyası Sıkı Office Open XML biçiminde kaydedilir.
Aşağıdaki örnek bir sunum oluşturur ve Sıkı Office Open XML biçiminde kaydeder.
$options = new PptxOptions();
$options->setConformance(Conformance::Iso29500_2008_Strict);
// Sunum dosyasını temsil eden Presentation sınıfını örnekleyin.
$presentation = new Presentation();
try {
// Sunumu Sıkı Office Open XML formatında kaydedin.
$presentation->save("StrictOfficeOpenXml.pptx", SaveFormat::Pptx, $options);
} finally {
$presentation->dispose();
}
ZIP64 Modunda Office Open XML Biçiminde Sunumları Kaydetme
Office Open XML dosyası, sıkıştırılmamış dosya boyutu, sıkıştırılmış dosya boyutu ve arşiv toplam boyutu için 4 GB (2^32 bayt) sınırı getiren bir ZIP arşividir ve ayrıca arşivde 65 535 (2^16‑1) dosya sınırı vardır. ZIP64 biçim uzantıları bu sınırları 2^64’e çıkarır.
PptxOptions.setZip64Mode yöntemi, Office Open XML dosyası kaydedilirken ZIP64 uzantılarının ne zaman kullanılacağını seçmenizi sağlar.
Bu yöntem aşağıdaki modlarla kullanılabilir:
- IfNecessary yalnızca sunum yukarıdaki sınırlamaları aştığında ZIP64 uzantılarını kullanır. Varsayılan moddur.
- Never ZIP64 uzantılarını asla kullanmaz.
- Always her zaman ZIP64 uzantılarını kullanır.
Aşağıdaki kod, ZIP64 uzantıları etkinleştirilmiş bir PPTX dosyası olarak sunumu nasıl kaydedeceğinizi gösterir:
$pptxOptions = new PptxOptions();
$pptxOptions->setZip64Mode(Zip64Mode::Always);
$presentation = new Presentation("Sample.pptx");
try {
$presentation->save("OutputZip64.pptx", SaveFormat::Pptx, $pptxOptions);
} finally {
$presentation->dispose();
}
NOT
Zip64Mode.Never ile kaydettiğinizde, sunum ZIP32 biçiminde kaydedilemezse bir PptxException fırlatılır.Sıkıştırma Seviyeleriyle Office Open XML Biçiminde Sunumları Kaydetme
Büyük sunumlarla çalışırken dosya boyutu ile işlem süresi arasında denge kurmak için sıkıştırma seviyesini ayarlayabilirsiniz. Gereksinimlerinize bağlı olarak daha hızlı işlem ya da daha küçük çıktı dosyaları tercih edilebilir.
Aspose.Slides, Office Open XML biçiminde bir sunumu kaydederken kullanılacak sıkıştırma seviyesini belirlemenizi sağlayan PptxOptions.setCompressionLevel yöntemini sunar.
Mevcut sıkıştırma seviyeleri:
- None: Sıkıştırma uygulanmaz. Dosyalar olduğu gibi saklanır.
- Level1: En hızlı sıkıştırma, en düşük sıkıştırma oranı.
- Level2: Level1’e göre biraz daha iyi sıkıştırma, hâlâ hızlı.
- Level3: Level2’den daha iyi sıkıştırma, orta düzey işlem süresi.
- Level4: Level3’ten daha iyi sıkıştırma.
- Level5: Level4’e göre geliştirilmiş sıkıştırma, ek işlem süresi.
- Level6: Standart sıkıştırma, işlem hızı ve dosya boyutu arasında iyi bir denge. Varsayılan sıkıştırma seviyesi bu seviyedir.
- Level7: Level6’dan daha iyi sıkıştırma, daha yavaş işlem.
- Level8: Level7’den daha iyi sıkıştırma.
- Level9: En yüksek sıkıştırma. En küçük dosya boyutunu üretir, ancak en uzun işlem süresine sahiptir.
Aşağıdaki örnek, sıkıştırma olmadan bir PPTX dosyası olarak sunumu nasıl kaydedeceğinizi gösterir:
$pptxOptions = new PptxOptions();
$pptxOptions->setCompressionLevel(CompressionLevel::None);
$presentation = new Presentation("Sample.pptx");
try {
$presentation->save("Sample-out.pptx", SaveFormat::Pptx, $pptxOptions);
} finally {
$presentation->dispose();
}
Bu örnek, maksimum sıkıştırma ile bir PPTX dosyası olarak sunumu nasıl kaydedeceğinizi gösterir:
$pptxOptions = new PptxOptions();
$pptxOptions->setCompressionLevel(CompressionLevel::Level9);
$presentation = new Presentation("Sample.pptx");
try {
$presentation->save("Sample-level9.pptx", SaveFormat::Pptx, $pptxOptions);
} finally {
$presentation->dispose();
}
Küçük Resmi Yenilemeden Sunumları Kaydetme
PptxOptions.setRefreshThumbnail yöntemi, bir sunumu PPTX olarak kaydederken küçük resim oluşturulmasını kontrol eder:
trueise kaydetme sırasında küçük resim yenilenir. Varsayılan değerdir.falseise mevcut küçük resim korunur. Sunumun küçük resmi yoksa hiç oluşturulmaz.
Aşağıdaki kod, sunumu küçük resmi yenilenmeden PPTX olarak kaydeder.
$pptxOptions = new PptxOptions();
$pptxOptions->setRefreshThumbnail(false);
$presentation = new Presentation("Sample.pptx");
try {
$presentation->save("Output.pptx", SaveFormat::Pptx, $pptxOptions);
}
finally {
$presentation->dispose();
}
Bilgi
Bu seçenek, PPTX biçiminde bir sunumu kaydetme süresini azaltmaya yardımcı olur.Kaydetme İlerleme Yüzdesi Güncellemeleri
Kaydetme sırasında ilerleme raporlaması, SaveOptions ve alt sınıfları üzerindeki setProgressCallback yöntemiyle yapılandırılır. IProgressCallback arayüzünü uygulayan bir Java proxy sağlayın; dışa aktarım sırasında geri arama periyodik yüzde güncellemeleri alır.
Aşağıdaki kod parçacıkları, IProgressCallback kullanımını gösterir:
class ExportProgressHandler {
function reporting($progressValue) {
// İlerleme yüzdesi değerini burada kullanın.
$progress = java("java.lang.Double")->valueOf($progressValue)->intValue();
echo($progress . "% of the file has been converted.");
}
}
$progressHandler = java_closure(new ExportProgressHandler(), null, java("com.aspose.slides.IProgressCallback"));
$saveOptions = new PdfOptions();
$saveOptions->setProgressCallback($progressHandler);
$presentation = new Presentation("Sample.pptx");
try {
$presentation->save("Output.pdf", SaveFormat::Pdf, $saveOptions);
} finally {
$presentation->dispose();
}
Bilgi
Aspose, kendi API’siyle geliştirilmiş ücretsiz bir PowerPoint Splitter uygulaması sunar: https://products.aspose.app/slides/tr/splitter. Uygulama, seçilen slaytları yeni PPTX veya PPT dosyaları olarak kaydederek bir sunumu birden fazla dosyaya bölmenizi sağlar.SSS
“Hızlı kaydetme” (artımlı kaydetme) destekleniyor mu, böylece yalnızca değişiklikler mi yazılıyor?
Hayır. Kaydetme her seferinde tam hedef dosyayı oluşturur; artımlı “hızlı kaydetme” desteklenmez.
Aynı Presentation örneğini birden çok iş parçacığından kaydetmek thread‑safe mi?
Hayır. Bir Presentation örneği thread‑safe değildir (/slides/tr/php-java/multithreading/); tek bir iş parçacığından kaydedin.
Kaydederken köprüler ve harici bağlanan dosyalar ne oluyor?
Hyperlinks korunur. Harici bağlanan dosyalar (ör. göreceli yollarla eklenen videolar) otomatik olarak kopyalanmaz—referans verilen yolların erişilebilir olduğundan emin olun.
Belge meta verilerini (Yazar, Başlık, Şirket, Tarih) ayarlayıp/kaydedebilir miyim?
Evet. Standart document properties desteklenir ve kaydetme sırasında dosyaya yazılır.