Настройка областей построения диаграмм в презентациях .NET
Получить ширину и высоту области построения диаграммы
Aspose.Slides for .NET предоставляет простой API для .
- Создайте экземпляр класса Presentation.
- Получите первый слайд.
- Добавьте диаграмму с данными по умолчанию.
- Вызовите метод IChart.ValidateChartLayout() перед получением фактических значений.
- Получает фактическое положение X (слева) элемента диаграммы относительно левого верхнего угла диаграммы.
- Получает фактическую верхнюю позицию элемента диаграммы относительно левого верхнего угла диаграммы.
- Получает фактическую ширину элемента диаграммы.
- Получает фактическую высоту элемента диаграммы.
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.)