调整 XSLFChart 的大小

Resizing a XSLFChart

XSLFSlide 上创建 XSLFChart 时,我似乎无法使锚定按预期工作。 我生成的图表如下

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)) 也在角落创建它,但有一些高度和宽度。

XSLFChart的位置需要设置为度量单位English Metric UnitsEMU,而不是XSLFSimpleShape的其他锚点。有 org.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);