diff --git a/Aspose.Slides.WebExtensions.Tests/SLIDESNET_45094.cs b/Aspose.Slides.WebExtensions.Tests/SLIDESNET_45094.cs
new file mode 100644
index 0000000..8157094
--- /dev/null
+++ b/Aspose.Slides.WebExtensions.Tests/SLIDESNET_45094.cs
@@ -0,0 +1,46 @@
+using Aspose.Slides.Export;
+using Aspose.Slides.Export.Web;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using System;
+using System.IO;
+
+namespace Aspose.Slides.WebExtensions.Tests
+{
+ [TestClass]
+ public class SLIDESNET_45094
+ {
+ [TestMethod]
+ public void Test_45094()
+ {
+ var RootDirectory = Path.GetFullPath("../../../");
+ var PresentationFilePath = Path.Combine(RootDirectory, "TestData", "SLIDESNET_45094", "SLIDESNET-45094.ppt");
+ var EthalonPath = Path.Combine(RootDirectory, "TestData", "SLIDESNET_45094", "html");
+ var TemplatePath = Path.Combine(RootDirectory, "TestData", "Out", "templates");
+ var OutputPath = Path.Combine(RootDirectory, "TestData", "Out", "SLIDESNET_45094");
+
+ var sourcePath1 = Path.GetFullPath(Path.Combine(RootDirectory, "..", "Aspose.Slides.WebExtensions", "templates", "single-page"));
+ var sourcePath2 = Path.GetFullPath(Path.Combine(RootDirectory, "..", "Aspose.Slides.WebExtensions", "templates", "common"));
+
+ Directory.CreateDirectory(OutputPath);
+ Directory.CreateDirectory(TemplatePath);
+
+ foreach (string dirPath in Directory.GetDirectories(sourcePath1, "*", SearchOption.AllDirectories)) Directory.CreateDirectory(dirPath.Replace(sourcePath1, TemplatePath));
+ foreach (string newPath in Directory.GetFiles(sourcePath1, "*.*", SearchOption.AllDirectories)) File.Copy(newPath, newPath.Replace(sourcePath1, TemplatePath), true);
+
+ foreach (string dirPath in Directory.GetDirectories(sourcePath2, "*", SearchOption.AllDirectories)) Directory.CreateDirectory(dirPath.Replace(sourcePath2, TemplatePath));
+ foreach (string newPath in Directory.GetFiles(sourcePath2, "*.*", SearchOption.AllDirectories)) File.Copy(newPath, newPath.Replace(sourcePath2, TemplatePath), true);
+
+ using (Presentation pres = new Presentation(PresentationFilePath))
+ {
+ WebDocument document = pres.ToSinglePageWebDocument(
+ new WebDocumentOptions()
+ {
+ EmbedImages = true
+ },
+ TemplatePath,
+ OutputPath);
+ document.Save();
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Aspose.Slides.WebExtensions.Tests/TestData/SLIDESNET_45094/SLIDESNET-45094.ppt b/Aspose.Slides.WebExtensions.Tests/TestData/SLIDESNET_45094/SLIDESNET-45094.ppt
new file mode 100644
index 0000000..bff0f52
Binary files /dev/null and b/Aspose.Slides.WebExtensions.Tests/TestData/SLIDESNET_45094/SLIDESNET-45094.ppt differ
diff --git a/Aspose.Slides.WebExtensions/Aspose.Slides.WebExtensions.csproj b/Aspose.Slides.WebExtensions/Aspose.Slides.WebExtensions.csproj
index 2ea7f68..5c1de7e 100644
--- a/Aspose.Slides.WebExtensions/Aspose.Slides.WebExtensions.csproj
+++ b/Aspose.Slides.WebExtensions/Aspose.Slides.WebExtensions.csproj
@@ -109,9 +109,9 @@
-
-
-
+
+
+
diff --git a/Aspose.Slides.WebExtensions/Helpers/ShapeHelper.cs b/Aspose.Slides.WebExtensions/Helpers/ShapeHelper.cs
index 9074d0f..57f1e69 100644
--- a/Aspose.Slides.WebExtensions/Helpers/ShapeHelper.cs
+++ b/Aspose.Slides.WebExtensions/Helpers/ShapeHelper.cs
@@ -98,7 +98,7 @@ private static Bitmap GetShapeThumbnail(IShape shape)
AutoShape autoShape = shape as AutoShape;
Bitmap thumbnail;
- if (autoShape != null && !string.IsNullOrEmpty(autoShape.TextFrame.Text))
+ if (autoShape != null && autoShape.TextFrame != null && !string.IsNullOrEmpty(autoShape.TextFrame.Text))
{
// Copy shape paragraphs -> remove text -> get shape image -> restore paragraphs. Export text as HTML markup in the template.
List paraColl = new List();
diff --git a/Examples/SinglePageApp/SinglePageApp.csproj b/Examples/SinglePageApp/SinglePageApp.csproj
index 1857fc0..1eedf3d 100644
--- a/Examples/SinglePageApp/SinglePageApp.csproj
+++ b/Examples/SinglePageApp/SinglePageApp.csproj
@@ -17,7 +17,7 @@
- 25.3.0
+ 25.8.0