.NET'te Sunumları Kaydet

Genel Bakış

C#‘da Sunum Açma bir sunumu açmak için Presentation sınıfının nasıl kullanılacağını açıklamıştır. Bu makale, sunumların nasıl oluşturulacağını ve kaydedileceğini anlatır. Presentation sınıfı bir sunumun içeriğini tutar. Sıfırdan bir sunum oluşturuyorsanız ya da mevcut bir sunumu değiştiriyorsanız, işi tamamladığınızda onu kaydetmek isteyeceksiniz. Aspose.Slides for .NET ile file veya stream olarak kaydedebilirsiniz. Bu makale, bir sunumu kaydetmenin farklı yollarını açıklar.

Sunumları Dosyalara Kaydet

Presentation sınıfının Save yöntemini çağırarak bir sunumu dosyaya kaydedin. Yönteme dosya adını ve kaydetme biçimini iletin. 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ı oluşturun.
using (Presentation presentation = new Presentation())
{
    // Burada bazı işlemleri yapın...

    // Sunumu bir dosyaya kaydedin.
    presentation.Save("Output.pptx", SaveFormat.Pptx);
}

Sunumları Akışlara Kaydet

Presentation sınıfının Save yöntemine bir çıktı akışı geçerek bir sunumu akışa kaydedebilirsiniz. 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ı başlat.
using (Presentation presentation = new Presentation())
{
    using (FileStream fileStream = new FileStream("Output.pptx", FileMode.Create))
    {
        // Sunumu akışa kaydedin.
        presentation.Save(fileStream, SaveFormat.Pptx);
    }
}

Önceden Tanımlı Görünüm Türü ile Sunumları Kaydet

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. ViewProperties sınıfındaki LastView özelliğini ViewType enum’ından bir değere ayarlayın.

using (Presentation presentation = new Presentation())
{
    presentation.ViewProperties.LastView = ViewType.SlideMasterView;
    presentation.Save("SlideMasterView.pptx", SaveFormat.Pptx);
}

Sunumları Katı Office Open XML Biçiminde Kaydet

Aspose.Slides, bir sunumu Katı Office Open XML biçiminde kaydetmenize olanak tanır. Kaydederken PptxOptions sınıfını kullanıp onun Conformance özelliğini ayarlayın. Conformance.Iso29500_2008_Strict olarak ayarlandığında çıkış dosyası Katı Office Open XML biçiminde kaydedilir.

Aşağıdaki örnek bir sunum oluşturur ve Katı Office Open XML biçiminde kaydeder.

PptxOptions options = new PptxOptions()
{
    Conformance = Conformance.Iso29500_2008_Strict
};

// Sunum dosyasını temsil eden Presentation sınıfını başlat.
using (Presentation presentation = new Presentation())
{
    // Sunumu Katı Office Open XML biçiminde kaydedin.
    presentation.Save("StrictOfficeOpenXml.pptx", SaveFormat.Pptx, options);
}

Sunumları Office Open XML Biçiminde Zip64 Modunda Kaydet

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ı koyan bir ZIP arşividir; ayrıca arşivde en fazla 65 535 (2^16‑1) dosya bulunabilir. ZIP64 biçim uzantıları bu sınırlamaları 2^64’e çıkarır.

IPptxOptions.Zip64Mode özelliği, bir Office Open XML dosyası kaydedilirken ZIP64 biçim uzantılarının ne zaman kullanılacağını seçmenizi sağlar.

Bu özellik aşağıdaki modları sunar:

  • IfNecessary sunum yukarıdaki sınırlamaları aştığında yalnızca ZIP64 uzantılarını kullanır. Bu varsayılan moddur.
  • Never ZIP64 uzantılarını hiçbir zaman kullanmaz.
  • Always her zaman ZIP64 uzantılarını kullanır.

Aşağıdaki kod, ZIP64 biçim uzantıları etkinleştirilmiş bir PPTX dosyası olarak bir sunumu nasıl kaydedeceğinizi gösterir:

using (Presentation presentation = new Presentation("Sample.pptx"))
{
    presentation.Save("OutputZip64.pptx", SaveFormat.Pptx, new PptxOptions()
    {
        Zip64Mode = Zip64Mode.Always
    });
}

Sunumları Office Open XML Biçiminde Sıkıştırma Düzeyleriyle Kaydet

Büyük sunumlarla çalışırken dosya boyutu ile işleme süresini dengelemek için sıkıştırma düzeyini ayarlayabilirsiniz. Gereksinimlerinize bağlı olarak daha hızlı işleme ya da daha küçük çıktı dosyalarını tercih edebilirsiniz.

Aspose.Slides, Office Open XML biçiminde bir sunumu kaydederken kullanılan sıkıştırma düzeyini belirlemenizi sağlayan IPptxOptions.CompressionLevel özelliğini sunar.

Mevcut sıkıştırma düzeyleri şunlardır:

  • None: Hiç sıkıştırma uygulanmaz. Dosyalar olduğu gibi saklanır.
  • Level1: En düşük sıkıştırma oranı ile en hızlı sıkıştırma.
  • Level2: Level1‘e göre biraz daha iyi sıkıştırma oranı ile daha hızlı sıkıştırma.
  • Level3: Level2‘den daha iyi sıkıştırma sağlar, işleme süresi orta seviyededir.
  • Level4: Level3‘ten daha iyi sıkıştırma sağlar.
  • Level5: Level4‘ten iyileştirilmiş sıkıştırma, ek işleme süresi gerektirir.
  • Level6: İşleme hızı ve dosya boyutu arasında iyi bir denge sunan standart sıkıştırma. Bu varsayılan sıkıştırma seviyesidir.
  • Level7: Level6‘dan daha iyi sıkıştırma, ancak daha yavaş işleme.
  • Level8: Level7‘den daha iyi sıkıştırma.
  • Level9: En yüksek sıkıştırma. En uzun işleme süresi karşılığında en küçük dosya boyutunu üretir.

Aşağıdaki örnek, sıkıştırma olmadan bir PPTX dosyası olarak bir sunumu nasıl kaydedeceğinizi gösterir:

using (Presentation pres = new Presentation("Sample.pptx"))
{
    pres.Save("Sample-out.pptx", SaveFormat.Pptx, new PptxOptions
    {
        CompressionLevel = CompressionLevel.None
    });
}

Bu örnek, en yüksek sıkıştırma ile bir PPTX dosyası olarak bir sunumu nasıl kaydedeceğinizi gösterir:

using (Presentation pres = new Presentation("Sample.pptx"))
{
    pres.Save("Sample-level9.pptx", SaveFormat.Pptx, new PptxOptions
    {
        CompressionLevel = CompressionLevel.Level9
    });
}

Küçük Resmi Yenilemeden Sunumları Kaydet

PptxOptions.RefreshThumbnail özelliği, bir sunumu PPTX olarak kaydederken küçük resim oluşturulmasını denetler:

  • true olarak ayarlandığında kaydetme sırasında küçük resim yenilenir. Bu varsayılandır.
  • false olarak ayarlandığında mevcut küçük resim korunur. Sunumun küçük resmi yoksa hiç oluşturulmaz.

Aşağıdaki kod, sunumu küçük resmi yenilemeden PPTX olarak kaydeder.

using (Presentation presentation = new Presentation("Sample.pptx"))
{
    presentation.Save("Output.pptx", SaveFormat.Pptx, new PptxOptions()
    {
        RefreshThumbnail = false
    });
}

İlerleme Güncellemelerini Yüzde Olarak Kaydet

IProgressCallback arayüzü, ISaveOptions arayüzü tarafından açığa çıkarılan ProgressCallback özelliği ve soyut SaveOptions sınıfı aracılığıyla kullanılır. ProgressCallback özelliğine bir IProgressCallback uygulaması atayarak kaydetme ilerlemesini yüzde olarak alabilirsiniz.

Aşağıdaki kod parçacıkları IProgressCallback kullanımını gösterir.

ISaveOptions saveOptions = new PdfOptions();
saveOptions.ProgressCallback = new ExportProgressHandler();

using (Presentation presentation = new Presentation("Sample.pptx"))
{
    presentation.Save("Output.pdf", SaveFormat.Pdf, saveOptions);
}
class ExportProgressHandler : IProgressCallback
{
    public void Reporting(double progressValue)
    {
        // Burada ilerleme yüzde değerini kullanın.
        int progress = Convert.ToInt32(progressValue);

        Console.WriteLine(progress + "% of the file has been converted.");
    }
}

SSS

“Hızlı kaydet” (artımlı kaydet) sadece değişiklikleri yazarak destekleniyor mu?

Hayır. Kaydetme her seferinde tam hedef dosyayı oluşturur; artımlı “hızlı kaydet” desteklenmez.

Aynı Presentation örneğini birden çok thread’den kaydetmek thread‑safe mi?

Hayır. Bir Presentation örneği thread‑safe değildir; tek bir thread’den kaydedin.

Kaydetme sırasında köprüler ve harici bağlantılı dosyalar ne oluyor?

Hyperlinks korunur. Harici bağlantılı dosyalar (ör. göreceli yollarla eklenen videolar) otomatik olarak kopyalanmaz; başvurulan 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.