调整 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);
在 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);