Изменение размера XSLFChart - PullRequest
1 голос
/ 21 января 2020

При создании XSLFChart на XSLFSlide я не могу заставить привязку работать так, как задумано. Я создаю диаграмму следующим образом

XSLFSlide slide = ppt.createSlide();
XSLFChart chart = ppt.createChart(slide);
slide.addChart(chart, new Rectangle(200, 200, 200, 200));
// Further styling and data

Но когда я открываю Powerpoint, диаграмма сжимается вверх в верхнем левом углу, как если бы она была привязана с Rectangle в (0, 0 ) с высотой и шириной 0. Создание диаграммы с другой перегрузкой функции (addChart(XSLFChart)) также создает ее в углу, но с некоторой высотой и шириной.

1 Ответ

1 голос
/ 22 января 2020

Положение XSLFChart необходимо установить в единицах измерения Engli sh Метри c Единицы EMU, а не в точках, как для других анкеров XSLFSimpleShape. Существует орг. apache .poi.util.Units для конвертации между различными другими единицами (точками также) и EMU.

В вашем случае:

XSLFSlide slide = ppt.createSlide();
XSLFChart chart = ppt.createChart(slide);
Rectangle rect = new Rectangle(200*Units.EMU_PER_POINT, 200*Units.EMU_PER_POINT, 200*Units.EMU_PER_POINT, 200*Units.EMU_PER_POINT);
slide.addChart(chart, rect);
...