Guardar Presentación - Biblioteca C++ PowerPoint

El artículo aquí explica cómo guardar presentaciones.

La clase Presentation contiene el contenido de una presentación. Ya sea creando una presentación desde cero o modificando una existente, cuando termines, querrás guardar la presentación. Con Aspose.Slides para C++, puede ser guardada como un archivo o flujo. Este artículo explica cómo guardar una presentación de diferentes maneras:

Guardar Presentación en Archivo

Guarda una presentación en archivos llamando al método Save de la clase Presentation. Simplemente pasa el nombre del archivo y el formato de guardado al método Save. Los ejemplos que siguen muestran cómo guardar una presentación con Aspose.Slides para 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);

Guardar Presentación en Flujo

Es posible guardar una presentación en un flujo pasando un flujo de salida al método Save de la clase Presentation . Hay muchos tipos de flujos a los que se puede guardar una presentación. En el siguiente ejemplo hemos creado un nuevo archivo de Presentación, añadimos texto en una forma y guardamos la presentación en el flujo.

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);

Guardar Presentación con Tipo de Vista Predefinido

Aspose.Slides para C++ proporciona una función para establecer el tipo de vista para la presentación generada cuando se abre en PowerPoint a través de la clase ViewProperties. La propiedad LastView se utiliza para establecer el tipo de vista utilizando el enumerador 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);

Guardar Presentación en Formato XML Abierto de Oficina Estricto

Aspose.Slides te permite guardar la presentación en formato XML Abierto de Oficina Estricto. Para ello, proporciona la clase PptxOptions donde puedes establecer la propiedad de Conformidad mientras guardas el archivo de presentación. Si estableces su valor como Conformance.Iso29500_2008_Strict, entonces el archivo de presentación de salida se guardará en formato XML Abierto de Oficina Estricto.

El siguiente código de muestra crea una presentación y la guarda en el Formato XML Abierto de Oficina Estricto. Al llamar al método Save para la presentación, se pasa el objeto PptxOptions con la propiedad de Conformidad establecida como 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);

Guardar Actualizaciones de Progreso en Porcentaje

Se ha añadido una nueva interfaz IProgressCallback a la interfaz ISaveOptions y a la clase abstracta SaveOptions. La interfaz IProgressCallback representa un objeto de callback para guardar actualizaciones de progreso en porcentaje.

Los siguientes fragmentos de código muestran cómo usar la interfaz 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);
}
};