Salva presentazioni in C++
Panoramica
Apri presentazioni in C++ descrive come utilizzare la classe Presentation per aprire una presentazione. Questo articolo spiega come creare e salvare presentazioni. La classe Presentation contiene il contenuto di una presentazione. Che tu stia creando una presentazione da zero o modificando una esistente, vorrai salvarla al termine. Con Aspose.Slides per C++, puoi salvare su un file o stream. Questo articolo illustra i diversi modi per salvare una presentazione.
Salva presentazioni su file
Salva una presentazione su file chiamando il metodo Save della classe Presentation. Passa il nome del file e il formato di salvataggio al metodo. L’esempio seguente mostra come salvare una presentazione con Aspose.Slides.
// Istanzia la classe Presentation che rappresenta un file di presentazione.
auto presentation = MakeObject<Presentation>();
// Esegui qualche operazione qui...
// Salva la presentazione su un file.
presentation->Save(u"Output.pptx", SaveFormat::Pptx);
presentation->Dispose();
Salva presentazioni su stream
Puoi salvare una presentazione su uno stream passando uno stream di output al metodo Save della classe Presentation. Una presentazione può essere scritta su molti tipi di stream. Nell’esempio seguente creiamo una nuova presentazione e la salviamo su un file stream.
// Istanzia la classe Presentation che rappresenta un file di presentazione.
auto presentation = MakeObject<Presentation>();
auto fileStream = MakeObject<FileStream>(u"Output.pptx", FileMode::Create);
// Salva la presentazione sullo stream.
presentation->Save(fileStream, SaveFormat::Pptx);
presentation->Dispose();
fileStream->Close();
Salva presentazioni con un tipo di vista predefinito
Aspose.Slides consente di impostare la vista iniziale che PowerPoint utilizza quando la presentazione generata si apre tramite la classe ViewProperties. Usa il metodo set_LastView con un valore dell’enumerazione ViewType.
auto presentation = MakeObject<Presentation>();
presentation->get_ViewProperties()->set_LastView(ViewType::SlideMasterView);
presentation->Save(u"SlideMasterView.pptx", SaveFormat::Pptx);
presentation->Dispose();
Salva presentazioni nel formato Strict Office Open XML
Aspose.Slides consente di salvare una presentazione nel formato Strict Office Open XML. Usa la classe PptxOptions e imposta la sua proprietà di conformità durante il salvataggio. Se imposti Conformance.Iso29500_2008_Strict, il file di output viene salvato nel formato Strict Office Open XML.
L’esempio seguente crea una presentazione e la salva nel formato Strict Office Open XML.
auto options = MakeObject<PptxOptions>();
options->set_Conformance(Conformance::Iso29500_2008_Strict);
// Istanzia la classe Presentation che rappresenta un file di presentazione.
auto presentation = MakeObject<Presentation>();
// Salva la presentazione nel formato Strict Office Open XML.
presentation->Save(u"StrictOfficeOpenXml.pptx", SaveFormat::Pptx, options);
presentation->Dispose();
Salva presentazioni nel formato Office Open XML in modalità Zip64
Un file Office Open XML è un archivio ZIP che impone limiti di 4 GB (2^32 byte) sulla dimensione non compressa di qualsiasi file, sulla dimensione compressa di qualsiasi file e sulla dimensione totale dell’archivio, oltre a limitare l’archivio a 65 535 (2^16‑1) file. Le estensioni del formato ZIP64 aumentano questi limiti a 2^64.
Il metodo IPptxOptions::set_Zip64Mode consente di scegliere quando utilizzare le estensioni ZIP64 durante il salvataggio di un file Office Open XML.
Questo metodo può essere utilizzato con le seguenti modalità:
IfNecessaryutilizza le estensioni ZIP64 solo se la presentazione supera le limitazioni sopra indicate. È la modalità predefinita.Nevernon utilizza mai le estensioni ZIP64.Alwaysutilizza sempre le estensioni ZIP64.
Il codice seguente dimostra come salvare una presentazione come PPTX con le estensioni ZIP64 abilitate:
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();
NOTE
Quando salvi conZip64Mode.Never, viene generata una PptxException se la presentazione non può essere salvata in formato ZIP32.
Salva presentazioni senza aggiornare la miniatura
Il metodo PptxOptions::set_RefreshThumbnail controlla la generazione della miniatura quando si salva una presentazione in PPTX:
- Se impostato a
true, la miniatura viene aggiornata durante il salvataggio. È il valore predefinito. - Se impostato a
false, la miniatura corrente viene preservata. Se la presentazione non ha una miniatura, non ne viene generata alcuna.
Nel codice seguente la presentazione viene salvata in PPTX senza aggiornare la sua miniatura.
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();
Info
Questa opzione aiuta a ridurre il tempo necessario per salvare una presentazione in formato PPTX.Salva aggiornamenti di avanzamento in percentuale
L’interfaccia IProgressCallback viene utilizzata tramite il metodo set_ProgressCallback esposto dall’interfaccia ISaveOptions e dalla classe astratta SaveOptions. Assegna un’implementazione di IProgressCallback con set_ProgressCallback per ricevere gli aggiornamenti di avanzamento del salvataggio in percentuale.
Gli snippet di codice seguenti mostrano come utilizzare IProgressCallback.
class ExportProgressHandler : public IProgressCallback
{
public:
void Reporting(double progressValue)
{
// Usa qui il valore percentuale di avanzamento.
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();
Info
Aspose ha sviluppato un app gratuita per la divisione di PowerPoint utilizzando la propria API. L’app consente di dividere una presentazione in più file salvando le diapositive selezionate come nuovi file PPTX o PPT.FAQ
Il “salvataggio veloce” (salvataggio incrementale) è supportato in modo che vengano scritte solo le modifiche?
No. Il salvataggio crea l’intero file di destinazione ogni volta; il “salvataggio veloce” incrementale non è supportato.
È sicuro salvare la stessa istanza di Presentation da più thread?
No. Un’istanza di Presentation non è thread‑safe (/slides/it/cpp/multithreading/); salvala da un singolo thread.
Cosa succede a collegamenti ipertestuali e file collegati esternamente durante il salvataggio?
I collegamenti ipertestuali vengono preservati. I file collegati esternamente (ad esempio video tramite percorsi relativi) non vengono copiati automaticamente: assicurati che i percorsi di riferimento rimangano accessibili.
Posso impostare/salvare i metadati del documento (Autore, Titolo, Azienda, Data)?
Sì. Le proprietà standard del documento sono supportate e verranno scritte nel file al momento del salvataggio.