使用 Java 在演示文稿中自定义图表图例
Contents
[
Hide
]
图例定位
为了设置图例属性,请按照以下步骤操作:
- 创建 Presentation 类的实例。
- 获取幻灯片的引用。
- 在幻灯片上添加图表。
- 设置图例的属性。
- 将演示文稿写入 PPTX 文件。
在下面的示例中,我们已为图表图例设置了位置和大小。
// 创建 Presentation 类的实例
Presentation pres = new Presentation();
try {
// 获取幻灯片的引用
ISlide slide = pres.getSlides().get_Item(0);
// 在幻灯片上添加簇状柱形图
IChart chart = slide.getShapes().addChart(ChartType.ClusteredColumn, 50, 50, 500, 500);
// 设置图例属性
chart.getLegend().setX(50 / chart.getWidth());
chart.getLegend().setY(50 / chart.getHeight());
chart.getLegend().setWidth(100 / chart.getWidth());
chart.getLegend().setHeight(100 / chart.getHeight());
// 将演示文稿写入磁盘
pres.save("Legend_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
设置图例的字体大小
Aspose.Slides for Java 允许开发者设置图例的字体大小。请按照以下步骤操作:
- 实例化 Presentation 类。
- 创建默认图表。
- 设置字体大小。
- 设置最小坐标轴值。
- 设置最大坐标轴值。
- 将演示文稿写入磁盘。
// 创建 Presentation 类的实例
Presentation pres = new Presentation();
try {
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.ClusteredColumn, 50, 50, 600, 400);
chart.getLegend().getTextFormat().getPortionFormat().setFontHeight(20);
chart.getAxes().getVerticalAxis().setAutomaticMinValue(false);
chart.getAxes().getVerticalAxis().setMinValue(-5);
chart.getAxes().getVerticalAxis().setAutomaticMaxValue(false);
chart.getAxes().getVerticalAxis().setMaxValue(10);
pres.save("output.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
设置单个图例项的字体大小
Aspose.Slides for Java 允许开发者为单个图例项设置字体大小。请按照以下步骤操作:
- 实例化 Presentation 类。
- 创建默认图表。
- 访问图例项。
- 设置字体大小。
- 设置最小坐标轴值。
- 设置最大坐标轴值。
- 将演示文稿写入磁盘。
// 创建 Presentation 类的实例
Presentation pres = new Presentation();
try {
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.ClusteredColumn, 50, 50, 600, 400);
IChartTextFormat tf = chart.getLegend().getEntries().get_Item(1).getTextFormat();
tf.getPortionFormat().setFontBold(NullableBool.True);
tf.getPortionFormat().setFontHeight(20);
tf.getPortionFormat().setFontItalic(NullableBool.True);
tf.getPortionFormat().getFillFormat().setFillType(FillType.Solid);
tf.getPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.BLUE);
pres.save("output.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
FAQ
我能否启用图例,使图表自动为其分配空间而不是覆盖?
是的。使用非覆盖模式(setOverlay(false));在这种情况下,绘图区域会缩小以容纳图例。
我能否创建多行图例标签?
可以。当空间不足时,长标签会自动换行;通过在系列名称中使用换行符可以强制换行。
如何使图例遵循演示文稿主题的配色方案?
不要为图例或其文本设置显式的颜色/填充/字体。这样它们将继承主题的设置,并在设计更改时自动更新。