Сохранить Презентацию - Библиотека C++ PowerPoint

Статья здесь объясняет, как сохранять презентации.

Класс Presentation содержит содержимое презентации. Создавая презентацию с нуля или изменяя существующую, по окончании вы хотите сохранить презентацию. С Aspose.Slides для C++ она может быть сохранена как файл или поток. Эта статья объясняет, как сохранить презентацию различными способами:

Сохранить Презентацию в Файл

Сохраните презентацию в файлы, вызвав метод Save класса Presentation. Просто передайте имя файла и формат сохранения методу Save. Примеры, которые следуют, показывают, как сохранить презентацию с помощью Aspose.Slides для C++.

For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C
const String outPath = u"../out/SaveToFile_out.ppt";
SharedPtr<Presentation> pres = MakeObject<Presentation>();
//pres->get_ProtectionManager()->Encrypt(u"pass");
//...do some work here..
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);

Сохранить Презентацию в Поток

Можно сохранить презентацию в поток, передав выходной поток в метод сохранения класса Presentation . Существуют многие типы потоков, в которые можно сохранить презентацию. В приведенном ниже примере мы создали новый файл Презентации, добавили текст в форму и сохранили презентацию в поток.

const String outPath = u"../out/Save_As_Stream_out.pptx";
SharedPtr<Presentation> pres = MakeObject<Presentation>();
SharedPtr<IAutoShape> shape = pres->get_Slides()->idx_get(0)->get_Shapes()->AddAutoShape(Aspose::Slides::ShapeType::Rectangle, 200, 200, 200, 200);
/// Load the video file to stream
System::SharedPtr<System::IO::Stream> stream = System::MakeObject<System::IO::FileStream>(outPath, System::IO::FileMode::Create);
pres->Save(stream, Aspose::Slides::Export::SaveFormat::Pptx);

Сохранить Презентацию с Предопределенным Типом Вида

Aspose.Slides для C++ предоставляет возможность установить тип вида для созданной презентации при ее открытии в PowerPoint через класс ViewProperties. Свойство LastView используется для установки типа вида с помощью перечисления ViewType.

For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C
const String outPath = u"../out/SaveAsPredefinedViewType_out.ppt";
SharedPtr<Presentation> pres = MakeObject<Presentation>();
pres->get_ViewProperties()->set_LastView(Aspose::Slides::ViewType::SlideMasterView);
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);

Сохранить Презентацию в Строгом Формате Office Open XML

Aspose.Slides позволяет сохранять презентацию в строгом формате Office Open XML. Для этой цели он предоставляет класс PptxOptions, где вы можете установить свойство Conformance при сохранении файла презентации. Если вы установите его значение как Conformance.Iso29500_2008_Strict, то выходной файл презентации будет сохранен в строгом формате Office Open XML.

Следующий пример кода создает презентацию и сохраняет ее в строгом формате Office Open XML. При вызове метода Save для презентации объект PptxOptions передается с установленным свойством Conformance как Conformance.Iso29500_2008_Strict.

For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C
const String outPath = u"../out/SaveToStrictOpenXML_out.pptx";
//Instantiate Presentation object
SharedPtr<Presentation> pres = MakeObject<Presentation>();
//Access first slide
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);
// Add an AutoShape of Rectangle type
SharedPtr<IAutoShape> ashp = slide->get_Shapes()->AddAutoShape(ShapeType::Rectangle, 150, 75, 150, 50);
//Setting options for strick XML
SharedPtr<PptxOptions> options = MakeObject<PptxOptions>();
options->set_Conformance(Conformance::Iso29500_2008_Strict);
//Save presentation
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx, options);

Сохранение Обновлений Прогресса в Процентах

Новый интерфейс IProgressCallback был добавлен в интерфейс ISaveOptions и абстрактный класс SaveOptions. Интерфейс IProgressCallback представляет объект обратного вызова для сохранения обновлений прогресса в процентах.

Ниже приведенные фрагменты кода показывают, как использовать интерфейс IProgressCallback:

const String templatePath = u"../templates/SamplePresentation.pptx";
const String outPath = u"../out/SamplePresentation_out.pptx";
auto presentation = System::MakeObject<Presentation>(templatePath);
System::SharedPtr<ISaveOptions> saveOptions = System::MakeObject<PdfOptions>();
System::SharedPtr<IProgressCallback> callBack = System::MakeObject<ExportProgressHandler>();
saveOptions->set_ProgressCallback(callBack);
presentation->Save(outPath, Aspose::Slides::Export::SaveFormat::Pdf, saveOptions);
class ExportProgressHandler : public IProgressCallback
{
public:
void Reporting(double progressValue)
{
System::Console::WriteLine(u"% completed", progressValue);
}
};