Konwertowanie prezentacji do HTML5 w C++

Przegląd

Ten artykuł wyjaśnia, jak konwertować prezentacje PowerPoint do formatu HTML5 przy użyciu Aspose.Slides for C++. Omówiono podstawowy eksport, kontrolę animacji kształtów i przejść slajdów oraz układ komentarzy. Ponadto porównano wyjście HTML5 z wyjściem opartym na SVG, generowanym przy standardowym eksporcie HTML.

Eksportowanie prezentacji PowerPoint do HTML5

Poniższy przykład ładuje prezentację z bieżącego katalogu i zapisuje ją w formacie HTML5. Używa domyślnych ustawień eksportu; kolejny przykład pokazuje, jak jawnie kontrolować odtwarzanie animacji. Zastąp ścieżkę wejściową ścieżką do własnej prezentacji.

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

Aby wyeksportować bez odtwarzania animacji kształtów lub przejść slajdów, przekaż false do set_AnimateShapes i set_AnimateTransitions w Html5Options. Ustawienia te są niezależne, więc można włączyć jedno, wyłączając drugie. Przykład eksportuje prezentację z wyłączonymi oboma typami animacji w wygenerowanej stronie.

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

Eksportowanie prezentacji PowerPoint do HTML

Standardowy eksport HTML wykorzystuje inne podejście renderowania: zawartość slajdu jest reprezentowana jako SVG wewnątrz strony HTML. Poniższy przykład konwertuje prezentację do dokumentu HTML przy użyciu tego podejścia renderowania.

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

Uproszczony znacznik poniżej ilustruje strukturę wygenerowanej strony. Element SVG zawiera wyrenderowaną zawartość slajdu; tekst zastępczy reprezentuje tę zawartość i nie jest dosłownym wynikiem eksportu.

<body>
<div class="slide" name="slide" id="slideslideIface1">
     <svg version="1.1">
         <g> THE SLIDE CONTENT GOES HERE </g>
     </svg>
</div>
</body>

Eksportowanie prezentacji PowerPoint do widoku slajdów HTML5

Eksport HTML5 generuje stronę do przeglądania i nawigacji po slajdach prezentacji w przeglądarce. Ten przykład przekazuje true zarówno do set_AnimateShapes jak i set_AnimateTransitions, aby wyeksportowany widok slajdów mógł odtwarzać efekty z oryginalnej prezentacji.
Użyj prezentacji, która już zawiera animacje kształtów i przejścia slajdów, aby zobaczyć efekt tych ustawień. Włączenie ich nie dodaje nowych efektów do slajdów, które ich nie posiadają. Po eksporcie otwórz wygenerowany dokument HTML5 w przeglądarce, mając dostępne pliki pomocnicze.

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

Konwertowanie prezentacji do dokumentu HTML5 z komentarzami

Możesz uwzględnić istniejące komentarze slajdów w wyjściu HTML5, aby czytelnicy mogli zobaczyć uwagi wraz z zawartością slajdu. Przykład w tej sekcji zakłada, że źródłowa prezentacja zawiera komentarze, jak pokazano poniżej. Eksportuje te komentarze; nie tworzy nowych.

Two comments on the presentation slide

Przekaż obiekt NotesCommentsLayoutingOptions do metody set_SlidesLayoutOptions klasy Html5Options. Wywołaj set_CommentsPosition z wartością CommentsPositions::Right z wyliczenia CommentsPositions, aby umieścić komentarze po prawej stronie każdego slajdu.

Poniższy przykład eksportuje prezentację do HTML5 z tym układem komentarzy. Prezentacja bez komentarzy nie będzie zawierała tekstu komentarza do wyświetlenia.

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

Poniższy obrazek pokazuje wyeksportowany dokument HTML5 z komentarzami wyświetlanymi obok slajdu.

The comments in the output HTML5 document

Wykluczanie hiperłączy JavaScript podczas eksportu

Załóżmy, że hyperlinks.pptx zawiera tekst z odnośnikiem o docelowym javascript:alert('Hello') oraz zwykły link https://example.com/. Aby wykluczyć hiperłącze JavaScript podczas eksportu, wywołaj SaveOptions::set_SkipJavaScriptLinks z wartością true. Domyślnie jest to false, więc te linki nie są filtrowane, chyba że włączysz tę opcję.

Poniższy przykład ładuje prezentację z bieżącego katalogu i eksportuje ją przy użyciu 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();

Wyeksportowany plik pomija hiperłącze JavaScript, zachowując jego tekst oraz zwykły link HTTPS. Źródłowa prezentacja pozostaje niezmieniona.

Opcja ta filtruje hiperłącza JavaScript; nie usuwa wszystkich skryptów ani innej aktywnej zawartości, ani nie gwarantuje zgodności z CSP. Na przykład wyjście HTML5 wciąż zawiera skrypty odpowiedzialne za nawigację slajdów i animacje.

FAQ

Czy mogę kontrolować, czy animacje obiektów i przejścia slajdów będą odtwarzane w HTML5?

Tak, eksport HTML5 oferuje oddzielne opcje włączania lub wyłączania animacje kształtów i przejścia slajdów.

Czy komentarze są obsługiwane i gdzie można je umieścić względem slajdu?

Tak, istniejące komentarze mogą być uwzględnione w wyjściu HTML5 i umieszczone (na przykład po prawej stronie slajdu) przy użyciu ustawienia układu.

Czy mogę pominąć linki wywołujące JavaScript ze względów bezpieczeństwa lub CSP?

Tak, metoda set_SkipJavaScriptLinks pozwala pominąć hiperłącza wywołujące JavaScript podczas zapisywania. Domyślnie jest to false. Zobacz Exclude JavaScript Hyperlinks During Export po przykład eksportu HTML5 i zakres filtru. To ustawienie nie usuwa JavaScript używanego przez przeglądarkę HTML5 do nawigacji i animacji.