C++'ta Sunumları Kaydetme

Genel Bakış

C++‘ta Sunumları Aç sunumun nasıl açılacağını Presentation sınıfı ile nasıl kullanılacağını açıkladı. Bu makale, nasıl sunum oluşturulur ve kaydedilir açıklamaktadır. Presentation sınıfı bir sunumun içeriğini içerir. Sıfırdan bir sunum oluşturuyor ya da mevcut bir sunumu değiştiriyor olun, işiniz bittiğinde onu kaydetmek isteyeceksiniz. Aspose.Slides for C++ ile bir dosya veya akış kaydedebilirsiniz. Bu makale, bir sunumu kaydetmenin farklı yollarını açıklamaktadır.

Sunumları Dosyalara Kaydetme

Bir sunumu, [Presentation] sınıfının Save metodunu çağırarak dosyaya kaydedin. Metoda dosya adını ve kaydetme biçimini geçirin. Aşağıdaki örnek, Aspose.Slides ile bir sunumu nasıl kaydedeceğinizi göstermektedir.

// Sunum dosyasını temsil eden Presentation sınıfını örnekleyin.
auto presentation = MakeObject<Presentation>();

// Burada bazı işlemler yapın...
// Sunumu bir dosyaya kaydedin.
presentation->Save(u"Output.pptx", SaveFormat::Pptx);

presentation->Dispose();

Sunumları Akışa Kaydetme

Bir sunumu, çıktıyı bir akışa geçirerek [Presentation] sınıfının Save metoduyla 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.
auto presentation = MakeObject<Presentation>();

auto fileStream = MakeObject<FileStream>(u"Output.pptx", FileMode::Create);

// Sunumu akışa kaydedin.
presentation->Save(fileStream, SaveFormat::Pptx);

presentation->Dispose();
fileStream->Close();

Önceden Tanımlı Görünüm Türüyle Sunumları Kaydetme

Aspose.Slides, oluşturulan sunum açıldığında PowerPoint’in kullandığı başlangıç görünümünü [ViewProperties] sınıfı aracılığıyla ayarlamanıza izin verir. [set_LastView] metodunu [ViewType] enumarasyonundan bir değerle kullanın.

auto presentation = MakeObject<Presentation>();

presentation->get_ViewProperties()->set_LastView(ViewType::SlideMasterView);

presentation->Save(u"SlideMasterView.pptx", SaveFormat::Pptx);
presentation->Dispose();

Sunumları Katı Office Open XML Biçiminde Kaydetme

Aspose.Slides, bir sunumu Katı Office Open XML formatında kaydetmenize olanak tanır. Kaydederken [PptxOptions] sınıfını kullanın ve onun conformance özelliğini ayarlayın. Conformance.Iso29500_2008_Strict ayarlarsanız, çıktı dosyası Katı Office Open XML formatında kaydedilir.

Aşağıdaki örnek bir sunum oluşturur ve onu Katı Office Open XML formatında kaydeder.

auto options = MakeObject<PptxOptions>();
options->set_Conformance(Conformance::Iso29500_2008_Strict);

// Sunum dosyasını temsil eden Presentation sınıfını örnekleyin.
auto presentation = MakeObject<Presentation>();

// Sunumu Katı Office Open XML formatında kaydedin.
presentation->Save(u"StrictOfficeOpenXml.pptx", SaveFormat::Pptx, options);
presentation->Dispose();

Zip64 Modunda Office Open XML Formatında Sunumları Kaydetme

Bir Office Open XML dosyası, herhangi bir dosyanın sıkıştırılmamış boyutu, sıkıştırılmış boyutu ve arşivin toplam boyutu için 4 GB (2^32 bayt) sınırlaması getiren bir ZIP arşividir ve ayrıca arşivi 65 535 (2^16‑1) dosyayla sınırlar. ZIP64 format uzantıları bu sınırları 2^64’e yükseltir.

[IPptxOptions::set_Zip64Mode] yöntemi, bir Office Open XML dosyası kaydederken ZIP64 format 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şarsa ZIP64 format uzantılarını kullanır. Bu varsayılan moddur.
  • Never ZIP64 format uzantılarını hiç kullanmaz.
  • Always her zaman ZIP64 format uzantılarını kullanır.

Aşağıdaki kod, ZIP64 format uzantıları etkinleştirilmiş bir PPTX olarak bir sunumun nasıl kaydedileceğini gösterir:

auto pptxOptions = MakeObject<PptxOptions>();
pptxOptions->set_Zip64Mode(Zip64Mode::Always);

auto presentation = MakeObject<Presentation>(u"Sample.pptx");

presentation->Save(u"OutputZip64.pptx", SaveFormat::Pptx, pptxOptions);
presentation->Dispose();

Küçük Resmi Yenilemeden Sunumları Kaydetme

[PptxOptions::set_RefreshThumbnail] metodu, bir sunumu PPTX olarak kaydederken küçük resim (thumbnail) oluşturulmasını kontrol eder:

  • true olarak ayarlanırsa, kaydetme sırasında küçük resim yenilenir. Bu varsayılandır.
  • false olarak ayarlanırsa, mevcut küçük resim korunur. Sunumda küçük resim yoksa, hiç oluşturulmaz.

Aşağıdaki kodda, sunum küçük resmi yenilenmeden PPTX olarak kaydedilir.

auto pptxOptions = MakeObject<PptxOptions>();
pptxOptions->set_RefreshThumbnail(false);

auto presentation = MakeObject<Presentation>(u"Sample.pptx");

presentation->Save(u"Output.pptx", SaveFormat::Pptx, pptxOptions);
presentation->Dispose();

Kaydetme İlerleme Güncellemelerini Yüzde Olarak Almak

[IProgressCallback] arabirimi, [ISaveOptions] arabirimi ve soyut [SaveOptions] sınıfı tarafından sunulan set_ProgressCallback yöntemi aracılığıyla kullanılır. set_ProgressCallback ile bir [IProgressCallback] uygulaması atayarak kaydetme ilerlemesi güncellemelerini yüzde olarak alabilirsiniz.

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

class ExportProgressHandler : public IProgressCallback
{
public:
    void Reporting(double progressValue)
    {
        // Burada ilerleme yüzde değerini kullanın.
        int progress = static_cast<int>(progressValue);

        Console::WriteLine(u"{0}% of the file has been converted.", progress);
    }
};
auto saveOptions = MakeObject<PdfOptions>();
saveOptions->set_ProgressCallback(MakeObject<ExportProgressHandler>());

auto presentation = MakeObject<Presentation>(u"Sample.pptx");

presentation->Save(u"Output.pdf", SaveFormat::Pdf, saveOptions);
presentation->Dispose();

SSS

“Hızlı kaydetme” (kademeli kaydetme) yalnızca değişikliklerin yazılması destekleniyor mu?

Hayır. Kaydetme her seferinde tam hedef dosyasını oluşturur; kademeli “hızlı kaydetme” desteklenmez.

Aynı Presentation örneğini birden çok thread’ten kaydetmek güvenli mi?

Hayır. Bir [Presentation] örneği thread-safe değildir; tek bir thread’ten kaydedin.

Hipernöbetler ve dışa bağlı dosyalar kaydedildiğinde ne olur?

Köprüler korunur. Dışarıdan bağlanan dosyalar (ör. göreceli yollarla videolar) otomatik olarak kopyalanmaz—referans verilen yolların erişilebilir olduğundan emin olun.

Belge meta verilerini (Yazar, Başlık, Şirket, Tarih) ayarlayabilir/kaydedebilir miyim?

Evet. Standart doküman özellikleri desteklenir ve kaydetme sırasında dosyaya yazılır.