Публичный API и несовместимые изменения в Aspose.Slides для .NET 14.8.0

Изменения публичного API

Изменённые свойства

Добавлен интерфейс IVbaProject, изменено свойство Presentation.VbaProject

Свойство VbaProject класса Presentation было заменено. Вместо представления свойства VbaProject в виде необработанных байтов VBA‑проекта теперь добавлена реализация нового интерфейса IVbaProject.

Используйте свойство IVbaProject для управления VBA‑проектами, встроенными в презентацию. Вы можете добавлять новые ссылки на проекты, редактировать существующие модули и создавать новые.

Также вы можете создать новый VBA‑проект, используя класс VbaProject, который реализует интерфейс IVbaProject.

Ниже приведён пример создания простого VBA‑проекта, содержащего один модуль, и добавления двух обязательных ссылок на библиотеки.


 using (Presentation pres = new Presentation())

{

    // Create new VBA Project

    pres.VbaProject = new VbaProject();

    // Add empty module to the VBA project

    IVbaModule module = pres.VbaProject.Modules.AddEmptyModule("Module");

    // Set module source code

    module.SourceCode =

        @"Sub Test(oShape As Shape)

            MsgBox ""Test""

        End Sub";

    // Create reference to <stdole>

    VbaReferenceOleTypeLib stdoleReference =

        new VbaReferenceOleTypeLib("stdole", "*\\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\\Windows\\system32\\stdole2.tlb#OLE Automation");

    // Create reference to Office

    VbaReferenceOleTypeLib officeReference =

        new VbaReferenceOleTypeLib("Office", "*\\G{2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}#2.0#0#C:\\Program Files\\Common Files\\Microsoft Shared\\OFFICE14\\MSO.DLL#Microsoft Office 14.0 Object Library");

    // Add references to the VBA project

    pres.VbaProject.References.Add(stdoleReference);

    pres.VbaProject.References.Add(officeReference);

    pres.Save("test.pptm", SaveFormat.Pptm);

}

Этот пример демонстрирует, как скопировать VBA‑проект из существующей презентации в новую.


 using (Presentation pres1 = new Presentation("PresentationWithMacroses.pptm"), pres2 = new Presentation())

{

    pres2.VbaProject = new VbaProject(pres1.VbaProject.ToBinary());

}

Добавлены интерфейсы, свойства и варианты перечислений

Добавлено свойство Aspose.Slides.Charts.IChartSeries.Overlap

Свойство Aspose.Slides.Charts.IChartSeries.Overlap определяет степень перекрытия столбцов и полос на двумерных диаграммах (от -100 до 100).

Это свойство относится не только к данной серии, но и ко всем сериям в родительской группе — это проекция соответствующего свойства группы. Поэтому свойство доступно только для чтения.

  • Используйте свойство ParentSeriesGroup, чтобы получить доступ к родительской группе серий.
  • Используйте свойство ParentSeriesGroup.Overlap для записи нового значения.

 using (Presentation pres = new Presentation())

{

   IChart chart = pres.Slides[0].Shapes.AddChart(ChartType.ClusteredColumn, 50, 50, 600, 400, true);

   IChartSeriesCollection series = chart.ChartData.Series;

   if (series[0].Overlap == 0)

      {

            series[0].ParentSeriesGroup.Overlap = -30;

      }

}

Добавлено свойство Aspose.Slides.Charts.IChartSeriesGroup.Overlap

Свойство Aspose.Slides.Charts.IChartSeriesGroup.Overlap определяет степень перекрытия столбцов и полос на двумерных диаграммах (от -100 до 100).




using (Presentation pres = new Presentation())

{

   IChart chart = pres.Slides[0].Shapes.AddChart(ChartType.ClusteredColumn, 50, 50, 600, 400, true);

   IChartSeriesCollection series = chart.ChartData.Series;

   series[0].ParentSeriesGroup.Overlap = -30;

}

Добавлено значение перечисления ShapeThumbnailBounds.Appearance

Этот метод создания эскиза формы позволяет сформировать эскиз в границах её визуального представления. Учтены все эффекты формы. Сгенерированный эскиз ограничен границами слайда.




using (Presentation p = new Presentation("Presentation.pptx"))

{

    Bitmap st = p.Slides[0].Shapes[0].GetThumbnail(ShapeThumbnailBounds.Appearance, 1, 1);

    st.Save("ShapeThumbnail.png", ImageFormat.Png);

}