Converti le presentazioni in HTML5 in C++
Panoramica
Questo articolo spiega come convertire le presentazioni PowerPoint in HTML5 utilizzando Aspose.Slides per C++. Copre l’esportazione di base, il controllo delle animazioni delle forme e delle transizioni delle diapositive, e il layout dei commenti. Confronta inoltre l’output HTML5 con l’output basato su SVG dell’esportazione HTML standard.
Esporta PowerPoint in HTML5
L’esempio seguente carica una presentazione dalla directory di lavoro e la salva in formato HTML5. Utilizza le impostazioni predefinite di esportazione; l’esempio successivo mostra come controllare esplicitamente la riproduzione delle animazioni. Sostituire il percorso di input con il percorso della propria presentazione.
#include <DOM/Presentation.h>
#include <Export/SaveFormat.h>
#include <system/smart_ptr.h>
using namespace Aspose::Slides;
using namespace Aspose::Slides::Export;
auto presentation = System::MakeObject<Presentation>(u"pres.pptx");
presentation->Save(u"pres.html", SaveFormat::Html5);
presentation->Dispose();
Nota
Oltre al documento HTML, l’esportazione genera file CSS e JavaScript di supporto per lo stile delle diapositive, le animazioni, gli effetti e la navigazione. Conservare questi file con il documento HTML quando si sposta o si pubblica l’output. La pagina generata carica inoltre jQuery e Anime.js da CDN pubblici; senza di essi la navigazione delle diapositive e le animazioni non funzionano.Per esportare senza riprodurre le animazioni delle forme o le transizioni delle diapositive, passare false a set_AnimateShapes e set_AnimateTransitions in Html5Options. Queste impostazioni sono indipendenti, quindi è possibile abilitare una e disabilitare l’altra. L’esempio esporta la presentazione con entrambi i tipi di animazione disabilitati nella pagina generata.
#include <DOM/Presentation.h>
#include <Export/SaveFormat.h>
#include <system/smart_ptr.h>
#include <Export/Html5Options.h>
using namespace Aspose::Slides;
using namespace Aspose::Slides::Export;
auto html5Options = System::MakeObject<Html5Options>();
html5Options->set_AnimateShapes(false);
html5Options->set_AnimateTransitions(false);
auto presentation = System::MakeObject<Presentation>(u"pres.pptx");
presentation->Save(u"pres5.html", SaveFormat::Html5, html5Options);
presentation->Dispose();
Esporta PowerPoint in HTML
L’esportazione HTML standard utilizza un approccio di rendering diverso: il contenuto delle diapositive è rappresentato da SVG all’interno di una pagina HTML. L’esempio seguente converte una presentazione in un documento HTML utilizzando questo approccio di rendering.
#include <DOM/Presentation.h>
#include <Export/SaveFormat.h>
#include <system/smart_ptr.h>
using namespace Aspose::Slides;
using namespace Aspose::Slides::Export;
auto presentation = System::MakeObject<Presentation>(u"pres.pptx");
presentation->Save(u"pres.html", SaveFormat::Html);
presentation->Dispose();
Il markup semplificato di seguito illustra la struttura della pagina generata. L’elemento SVG contiene il contenuto della diapositiva renderizzato; il testo segnaposto rappresenta quel contenuto e non è l’output reale dell’esportazione.
<body>
<div class="slide" name="slide" id="slideslideIface1">
<svg version="1.1">
<g> THE SLIDE CONTENT GOES HERE </g>
</svg>
</div>
</body>
Attenzione
L’esportazione basata su SVG non espone le forme di PowerPoint come elementi HTML individuali. Utilizzare l’esportazione HTML5 quando sono necessarie le opzioni di animazione delle forme e di transizione delle diapositive illustrate in questo articolo.Esporta PowerPoint in visualizzazione diapositiva HTML5
L’esportazione HTML5 produce una pagina per visualizzare e navigare le diapositive della presentazione in un browser. Questo esempio passa true sia a set_AnimateShapes sia a set_AnimateTransitions in modo che la visualizzazione della diapositiva esportata possa riprodurre gli effetti della presentazione originale.
Utilizzare una presentazione che contiene già animazioni di forme e transizioni diapositive per vedere l’effetto di queste impostazioni. Abilitarle non aggiunge nuovi effetti alle diapositive che non ne hanno. Dopo l’esportazione, aprire il documento HTML5 generato in un browser con i file di supporto disponibili.
#include <DOM/Presentation.h>
#include <Export/SaveFormat.h>
#include <system/smart_ptr.h>
#include <Export/Html5Options.h>
using namespace Aspose::Slides;
using namespace Aspose::Slides::Export;
auto html5Options = System::MakeObject<Html5Options>();
html5Options->set_AnimateShapes(true);
html5Options->set_AnimateTransitions(true);
auto presentation = System::MakeObject<Presentation>(u"pres.pptx");
presentation->Save(u"HTML5-slide-view.html", SaveFormat::Html5, html5Options);
presentation->Dispose();
Converti una presentazione in un documento HTML5 con commenti
È possibile includere i commenti delle diapositive esistenti nell’output HTML5 affinché i lettori possano vedere il feedback accanto al contenuto della diapositiva. L’esempio in questa sezione si aspetta che la presentazione di origine contenga commenti, come illustrato di seguito. Esporta tali commenti; non crea nuovi commenti.

Passare un oggetto NotesCommentsLayoutingOptions al metodo set_SlidesLayoutOptions di Html5Options. Chiamare set_CommentsPosition con CommentsPositions::Right dall’enumerazione CommentsPositions per posizionare i commenti a destra di ogni diapositiva.
L’esempio seguente esporta la presentazione in HTML5 con questo layout dei commenti. Una presentazione senza commenti non avrà testo di commento da visualizzare.
#include <DOM/Presentation.h>
#include <Export/SaveFormat.h>
#include <system/smart_ptr.h>
#include <Export/Html5Options.h>
#include <Export/NotesCommentsLayoutingOptions.h>
#include <Export/CommentsPositions.h>
using namespace Aspose::Slides;
using namespace Aspose::Slides::Export;
auto layoutOptions = System::MakeObject<NotesCommentsLayoutingOptions>();
layoutOptions->set_CommentsPosition(CommentsPositions::Right);
auto html5Options = System::MakeObject<Html5Options>();
html5Options->set_SlidesLayoutOptions(layoutOptions);
auto presentation = System::MakeObject<Presentation>(u"sample.pptx");
presentation->Save(u"output.html", SaveFormat::Html5, html5Options);
presentation->Dispose();

Escludi i collegamenti ipertestuali JavaScript durante l’esportazione
Supponiamo che hyperlinks.pptx contenga testo collegato con un target javascript:alert('Hello') e un normale collegamento https://example.com/. Per escludere il collegamento ipertestuale JavaScript durante l’esportazione, chiamare SaveOptions::set_SkipJavaScriptLinks con true. Il valore predefinito è false, quindi questi collegamenti non vengono filtrati a meno che non si abiliti l’opzione.
L’esempio seguente carica la presentazione dalla directory di lavoro e la esporta utilizzando Html5Options:
#include <DOM/Presentation.h>
#include <Export/SaveFormat.h>
#include <system/smart_ptr.h>
#include <Export/Html5Options.h>
using namespace Aspose::Slides;
using namespace Aspose::Slides::Export;
auto html5Options = System::MakeObject<Html5Options>();
html5Options->set_SkipJavaScriptLinks(true);
auto presentation = System::MakeObject<Presentation>(u"hyperlinks.pptx");
presentation->Save(u"filtered-html5.html", SaveFormat::Html5, html5Options);
presentation->Dispose();
Il file esportato omette il collegamento ipertestuale JavaScript mantenendo il suo testo e il normale collegamento HTTPS. La presentazione di origine rimane invariata.
Questa opzione filtra i collegamenti ipertestuali JavaScript; non rimuove tutti gli script o altro contenuto attivo, né garantisce la conformità CSP. Ad esempio, l’output HTML5 include ancora script per la navigazione delle diapositive e le animazioni.
FAQ
Posso controllare se le animazioni degli oggetti e le transizioni delle diapositive verranno riprodotte in HTML5?
Sì, l’esportazione HTML5 offre opzioni separate per abilitare o disabilitare le animazioni delle forme e le transizioni delle diapositive.
I commenti sono supportati e dove possono essere posizionati rispetto alla diapositiva?
Sì, i commenti esistenti possono essere inclusi nell’output HTML5 e posizionati (ad esempio, a destra della diapositiva) tramite le impostazioni di layout per note e commenti.
Posso ignorare i collegamenti che invocano JavaScript per motivi di sicurezza o CSP?
Sì, il metodo set_SkipJavaScriptLinks consente di saltare i collegamenti ipertestuali con chiamate JavaScript durante il salvataggio. Il valore predefinito è false. Vedere Escludi i collegamenti ipertestuali JavaScript durante l’esportazione per un esempio di esportazione HTML5 e l’ambito del filtro. Questa impostazione non rimuove il JavaScript usato dal visualizzatore HTML5 per la navigazione e le animazioni.