Настройка областей построения диаграмм в презентациях .NET

Получить ширину и высоту области построения диаграммы

Aspose.Slides for .NET предоставляет простой API для .

  1. Создайте экземпляр класса Presentation.
  2. Получите первый слайд.
  3. Добавьте диаграмму с данными по умолчанию.
  4. Вызовите метод IChart.ValidateChartLayout() перед получением фактических значений.
  5. Получает фактическое положение X (слева) элемента диаграммы относительно левого верхнего угла диаграммы.
  6. Получает фактическую верхнюю позицию элемента диаграммы относительно левого верхнего угла диаграммы.
  7. Получает фактическую ширину элемента диаграммы.
  8. Получает фактическую высоту элемента диаграммы.
using (Presentation pres = new Presentation("test.Pptx"))
{
    Chart chart = (Chart)pres.Slides[0].Shapes.AddChart(ChartType.ClusteredColumn, 100, 100, 500, 350);
    chart.ValidateChartLayout();

    double x = chart.PlotArea.ActualX;
    double y = chart.PlotArea.ActualY;
    double w = chart.PlotArea.ActualWidth;
    double h = chart.PlotArea.ActualHeight;
	
	// Сохранить презентацию с диаграммой
	pres.Save("Chart_out.pptx", SaveFormat.Pptx);
}

Установить режим компоновки области построения диаграммы

Aspose.Slides for .NET предоставляет простой API для установки режима компоновки области построения диаграммы. Свойство LayoutTargetType было добавлено к классам ChartPlotArea и IChartPlotArea. Если компоновка области построения задаётся вручную, это свойство указывает, следует ли компоновать область по её внутренней части (не включая оси и подписи к осям) или по внешней части (включая оси и подписи к осям). Существует два возможных значения, определённых в перечислении LayoutTargetType.

  • LayoutTargetType.Inner – указывает, что размер области построения определяет размер области построения без учёта делений и подписей осей.
  • LayoutTargetType.Outer – указывает, что размер области построения определяет размер области построения, включая деления и подписи осей.

Пример кода приведён ниже.

using (Presentation presentation = new Presentation())
{
    ISlide slide = presentation.Slides[0];
    IChart chart = slide.Shapes.AddChart(ChartType.ClusteredColumn, 20, 100, 600, 400);
    chart.PlotArea.AsILayoutable.X = 0.2f;
    chart.PlotArea.AsILayoutable.Y = 0.2f;
    chart.PlotArea.AsILayoutable.Width = 0.7f;
    chart.PlotArea.AsILayoutable.Height = 0.7f;
    chart.PlotArea.LayoutTargetType = LayoutTargetType.Inner;

    presentation.Save("SetLayoutMode_outer.pptx", SaveFormat.Pptx);
}

FAQ

В каких единицах возвращаются ActualX, ActualY, ActualWidth и ActualHeight?

В пунктах; 1 дюйм = 72 пункта. Это координатные единицы Aspose.Slides.

Чем область построения отличается от области диаграммы по содержимому?

Область построения — это область рисования данных (ряды, сетка, тренд‑линии и т.д.); область диаграммы включает окружающие элементы (заголовок, легенду и т.п.). В 3D‑диаграммах область построения также включает стены/пол и оси.

Как интерпретируются X, Y, Width и Height области построения при ручной компоновке?

Они задаются в виде долей (0–1) от общего размера диаграммы; в этом режиме автоматическое позиционирование отключено, и используются указанные вами доли.

Почему позиция области построения меняется после добавления/перемещения легенды?

Легенда располагается в области диаграммы за пределами области построения, но влияет на компоновку и доступное пространство, поэтому область построения может смещаться, когда включено автоматическое позиционирование. (Это стандартное поведение диаграмм PowerPoint.)