首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用XSLF向Powerpoint幻灯片添加形状(Apache POI Project)

使用XSLF向Powerpoint幻灯片添加形状(Apache POI Project)
EN

Stack Overflow用户
提问于 2013-02-02 02:32:36
回答 1查看 4.3K关注 0票数 3

apache POI项目解释了如何从powerpoint幻灯片http://poi.apache.org/slideshow/xslf-cookbook.html#GetShapes中读取形状

但是,我找不到任何关于如何使用该库的这一部分向powerpoint幻灯片添加形状的文档。

代码语言:javascript
复制
SlideShow ppt = new SlideShow();
//add first slide
Slide s1 = ppt.createSlide();

// create shapes./ 
java.awt.geom.GeneralPath path = new java.awt.geom.GeneralPath();
path.moveTo(100, 100);
path.lineTo(200, 100);
path.curveTo(50, 45, 134, 22, 78, 133);
path.curveTo(10, 45, 134, 56, 78, 100);
path.lineTo(100, 200);
path.closePath();

Freeform shape = new Freeform();
shape.setPath(path);
s1.addShape(shape);

//save changes in a file
FileOutputStream out;
try {
    out = new FileOutputStream("slideshow.ppt");
    ppt.write(out);
    out.close(); 
} catch (FileNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
} catch (IOException ex) {
    e.printStakTrace();
}

我如何使用库的xlsf部分来做类似的事情,从而生成pptx?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2013-04-28 17:32:56

实际上很相似……

代码语言:javascript
复制
XMLSlideShow ppt = new XMLSlideShow();
XSLFSlide s1 = ppt.createSlide();

// create shapes 
java.awt.geom.Path2D.Double path = new java.awt.geom.Path2D.Double();
path.moveTo(100, 100);
path.lineTo(200, 100);
path.curveTo(50, 45, 134, 22, 78, 133);
path.curveTo(10, 45, 134, 56, 78, 100);
path.lineTo(100, 200);
path.closePath();

XSLFFreeformShape shape = s1.createFreeform();
shape.setPath(path);
shape.setLineWidth(1);
shape.setLineColor(Color.BLACK);

//save changes in a file
FileOutputStream out;
try {
    out = new FileOutputStream("slideshow.pptx");
    ppt.write(out);
    out.close(); 
} catch (Exception ex) {
    ex.printStackTrace();
}

要获得更多示例和Graphics2D上下文,请查看我的PptxGraphics2D类。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14652821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档