Sunumları C++'ta HTML5'e Dönüştürme
Genel Bakış
Bu makale, Aspose.Slides for C++ kullanarak PowerPoint sunumlarını HTML5’e nasıl dönüştüreceğinizi açıklar. Temel dışa aktarmayı, şekil animasyonları ve slayt geçişlerinin kontrolünü ve yorum düzenini kapsar. Ayrıca HTML5 çıktısını standart HTML dışa aktarmanın SVG tabanlı çıktısıyla karşılaştırır.
PowerPoint’i HTML5’e Dışa Aktarma
Aşağıdaki örnek, çalışma dizininden bir sunumu yükler ve HTML5 formatında kaydeder. Varsayılan dışa aktarma ayarlarını kullanır; bir sonraki örnek, animasyon oynatımını açıkça nasıl kontrol edeceğinizi gösterir. Giriş yolunu sunumunuzun yolu ile değiştirin.
#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();
Note
HTML belgesinin yanı sıra, dışa aktarım slayt stilizasyonu, animasyonlar, efektler ve gezinme için destekleyen CSS ve JavaScript dosyaları yazar. Çıktıyı taşırken veya yayınlarken bu dosyaları HTML belgesi ile birlikte tutun. Oluşturulan sayfa ayrıca jQuery ve Anime.js’i genel CDN’lerden yükler; bunlar olmadan slayt gezinmesi ve animasyonlar çalışmaz.Şekil animasyonları veya slayt geçişleri oynatılmadan dışa aktarmak için, set_AnimateShapes ve set_AnimateTransitions yöntemlerine false değerini, Html5Options içinde geçirin. Bu ayarlar bağımsızdır, bu yüzden birini etkinleştirirken diğerini devre dışı bırakabilirsiniz. Örnek, her iki animasyon türünün de devre dışı bırakıldığı bir sunumu oluşturulan sayfada dışa aktarır.
#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();
PowerPoint’i HTML’e Dışa Aktarma
Standart HTML dışa aktarma, farklı bir renderleme yaklaşımı kullanır: slayt içeriği, bir HTML sayfası içinde SVG olarak temsil edilir. Aşağıdaki örnek, bu renderleme yaklaşımını kullanarak bir sunumu HTML belgesine dönüştürür.
#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();
Aşağıdaki basitleştirilmiş işaretleme, oluşturulan sayfanın yapısını gösterir. SVG öğesi, renderlenen slayt içeriğini içerir; yer tutucu metin bu içeriği temsil eder ve gerçek dışa aktarım çıktısı değildir.
<body>
<div class="slide" name="slide" id="slideslideIface1">
<svg version="1.1">
<g> THE SLIDE CONTENT GOES HERE </g>
</svg>
</div>
</body>
Warning
SVG tabanlı dışa aktarma, PowerPoint şekillerini ayrı HTML öğeleri olarak ortaya çıkarmaz. Bu makalede gösterilen şekil animasyonu ve slayt geçişi seçeneklerine ihtiyacınız olduğunda HTML5 dışa aktarımını kullanın.PowerPoint’i HTML5 Slayt Görünümüne Dışa Aktarma
HTML5 dışa aktarım, tarayıcıda sunum slaytlarını görüntülemek ve gezinmek için bir sayfa üretir. Bu örnek, dışa aktarılan slayt görünümünün kaynak sunumdaki efektleri oynatabilmesi için hem set_AnimateShapes hem de set_AnimateTransitions yöntemlerine true değerini geçirir.
Bu ayarların etkisini görmek için zaten şekil animasyonları ve slayt geçişleri içeren bir sunum kullanın. Etkinleştirilmesi, hiç efekti olmayan slaytlara yeni efekt eklemez. Dışa aktarma sonrası, destek dosyaları mevcutken oluşturulan HTML5 belgesini bir tarayıcıda açın.
#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();
Bir Sunumu Yorumlarla HTML5 Belgesine Dönüştürme
Mevcut slayt yorumlarını HTML5 çıktısına dahil edebilirsiniz, böylece okuyucular slayt içeriğinin yanında geri bildirimi görebilir. Bu bölümdeki örnek, kaynak sunumun aşağıda gösterildiği gibi yorumlar içerdiğini varsayar. Yorumları dışa aktarır; yeni yorumlar oluşturmaz.

NotesCommentsLayoutingOptions nesnesini Html5Options içindeki set_SlidesLayoutOptions metoduna geçirin. Yorumları her slaydın sağına yerleştirmek için CommentsPositions enumarasyonundan CommentsPositions::Right ile set_CommentsPosition metodunu çağırın.
Aşağıdaki örnek, bu yorum düzeniyle sunumu HTML5’e dışa aktarır. Yorum içermeyen bir sunumda gösterilecek yorum metni bulunmaz.
#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();
Aşağıdaki görsel, yorumların slayt yanında gösterildiği dışa aktarılmış HTML5 belgesini gösterir.

Dışa Aktarım Sırasında JavaScript Hiperlinklerini Hariç Tutma
hyperlinks.pptx dosyasının javascript:alert('Hello') hedefli bir bağlantılı metin ve normal bir https://example.com/ bağlantısı içerdiğini varsayalım. Dışa aktarma sırasında JavaScript hiperlinkini hariç tutmak için, SaveOptions::set_SkipJavaScriptLinks metodunu true ile çağırın. Varsayılan değer false olduğundan, bu bağlantılar seçeneği etkinleştirene kadar filtrelenmez.
Aşağıdaki örnek, sunumu çalışma dizininden yükler ve Html5Options kullanarak dışa aktarır:
#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();
Dışa aktarılan dosya, JavaScript hiperlinkini göz ardı ederken metnini ve normal HTTPS bağlantısını korur. Kaynak sunum değişmeden kalır.
Bu seçenek JavaScript hiperlinklerini filtreler; tüm scriptleri veya diğer etkin içerikleri kaldırmaz, ayrıca CSP uyumluluğunu garanti etmez. Örneğin, HTML5 çıktısı hâlâ slayt gezinmesi ve animasyonlar için scriptler içerir.
SSS
HTML5’te nesne animasyonlarının ve slayt geçişlerinin oynatılıp oynatılmayacağını kontrol edebilir miyim?
Evet, HTML5 dışa aktarım, shape animations ve slide transitions seçeneklerini etkinleştirmek veya devre dışı bırakmak için ayrı seçenekler sunar.
Yorumlar destekleniyor mu ve slayta göre nerede konumlandırılabilir?
Evet, mevcut yorumlar HTML5 çıktısına dahil edilebilir ve notlar ve yorumlar için layout settings aracılığıyla (örneğin, slaytın sağına) konumlandırılabilir.
Güvenlik veya CSP nedenleriyle JavaScript çağıran bağlantıları atlayabilir miyim?
Evet, set_SkipJavaScriptLinks metodu, kaydetme sırasında JavaScript çağrısı yapan hiperlinkleri atlamanızı sağlar. Varsayılan değer false‘tir. Bir HTML5 dışa aktarma örneği ve filtrenin kapsamı için Exclude JavaScript Hyperlinks During Export bölümüne bakın. Bu ayar, HTML5 görüntüleyicisinin gezinme ve animasyonlar için kullandığı JavaScript’i kaldırmaz.