[英]Adding shapes to Powerpoint slide using XSLF (Apache POI Project)
apache POI項目解釋了如何從powerpoint幻燈片中讀取形狀http://poi.apache.org/slideshow/xslf-cookbook.html#GetShapes
但是,我找不到任何關於如何使用庫的這一部分向powerpoint幻燈片添加形狀的文檔。 如果我使用舊的powerpoint格式(ppt而不是pptx),我可以使用libaray的hslf部分並執行:
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?
謝謝
它實際上非常相似......
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類。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.