图表绘图区域

获取图表绘图区域的宽度和高度

Aspose.Slides for Java 提供了一个简单的 API。

  1. 创建一个 Presentation 类的实例。
  2. 访问第一张幻灯片。
  3. 添加带有默认数据的图表。
  4. 调用方法 IChart.validateChartLayout() 以获取实际值。
  5. 获取图表元素相对于图表左上角的实际 X 位置(左)。
  6. 获取图表元素相对于图表左上角的实际顶部位置。
  7. 获取图表元素的实际宽度。
  8. 获取图表元素的实际高度。
// 创建 Presentation 类的实例
Presentation pres = new Presentation();
try {
    Chart chart = (Chart)pres.getSlides().get_Item(0).getShapes().addChart(ChartType.ClusteredColumn, 100, 100, 500, 350);
    chart.validateChartLayout();

    double x = chart.getPlotArea().getActualX();
    double y = chart.getPlotArea().getActualY();
    double w = chart.getPlotArea().getActualWidth();
    double h = chart.getPlotArea().getActualHeight();
} finally {
    if (pres != null) pres.dispose();
}

设置图表绘图区域的布局模式

Aspose.Slides for Java 提供了一个简单的 API 来设置图表绘图区域的布局模式。方法 setLayoutTargetTypegetLayoutTargetType 已添加到 ChartPlotArea 类和 IChartPlotArea 接口。如果绘图区域的布局是手动定义的,则该属性指定是通过其内部(不包括坐标轴和坐标轴标签)还是外部(包括坐标轴和坐标轴标签)来布局绘图区域。定义在 LayoutTargetType 枚举中有两个可能的值。

  • LayoutTargetType.Inner - 指定绘图区域的大小应确定绘图区域的大小,不包括刻度线和坐标轴标签。
  • LayoutTargetType.Outer - 指定绘图区域的大小应确定绘图区域的大小,包括刻度线和坐标轴标签。

以下是示例代码。

// 创建 Presentation 类的实例
Presentation pres = new Presentation();
try {
    ISlide slide = pres.getSlides().get_Item(0);
    IChart chart = slide.getShapes().addChart(ChartType.ClusteredColumn, 20, 100, 600, 400);
    chart.getPlotArea().setX(0.2f);
    chart.getPlotArea().setY(0.2f);
    chart.getPlotArea().setWidth(0.7f);
    chart.getPlotArea().setHeight(0.7f);
    chart.getPlotArea().setLayoutTargetType(LayoutTargetType.Inner);

    pres.save("SetLayoutMode_outer.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}