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