请注意,XSLF仍然处于早期开发阶段,而且未来会在发行版中发生不兼容的更改。java
建立新的演示文稿
阅读现有演示文稿
使用预约义的布局建立幻灯片
删除幻灯片
从新订购幻灯片
更改幻灯片大小
阅读形状
添加图片
阅读演示文稿中包含的图像
格式化文本
超连接
将.pptx幻灯片转换为图像
合并多个演示文稿apache
//建立一个新的空幻灯片 XMLSlideShow ppt = new XMLSlideShow(); //添加第一张幻灯片 XSLFSlide blankSlide = ppt.createSlide();
XMLSlideShow ppt = new XMLSlideShow(new FileInputStream("slideshow.pptx")); //附加一个新的幻灯片到最后 XSLFSlide blankSlide = ppt.createSlide();
XMLSlideShow ppt = new XMLSlideShow(new FileInputStream("slideshow.pptx")); //首先看看什么幻灯片布局可用: System.out.println("可用幻灯片布局:"); for(XSLFSlideMaster master:ppt.getSlideMasters()){ for(XSLFSlideLayout layout:master.getSlideLayouts()){ 的System.out.println(layout.getType()); } } //空白幻灯片 XSLFSlide blankSlide = ppt.createSlide(); //能够有多个主器件引用多个布局 //为了演示,咱们使用第一个(默认)幻灯片母版 XSLFSlideMaster defaultMaster = ppt.getSlideMasters().get(0); //标题幻灯片 XSLFSlideLayout titleLayout = defaultMaster.getLayout(SlideLayout.TITLE); //填写占位符 XSLFSlide slide1 = ppt.createSlide(titleLayout); XSLFTextShape title1 = slide1.getPlaceholder(0); title1.setText("First Title"); //标题和内容 XSLFSlideLayout titleBodyLayout = defaultMaster.getLayout(SlideLayout.TITLE_AND_CONTENT); XSLFSlide slide2 = ppt.createSlide(titleBodyLayout); XSLFTextShape title2 = slide2.getPlaceholder(0); title2.setText("Second Title"); XSLFTextShape body2 = slide2.getPlaceholder(1); body2.clearText(); //取消设置任何现有文本 body2.addNewTextParagraph().addNewTextRun().setText("First paragraph"); body2.addNewTextParagraph().addNewTextRun().setText("Second paragraph"); body2.addNewTextParagraph().addNewTextRun().setText("Third paragraph");
XMLSlideShow ppt = new XMLSlideShow(new FileInputStream("slideshow.pptx")); ppt.removeSlide(0); //要删除的幻灯片的基于0的索引
XMLSlideShow ppt = new XMLSlideShow(new FileInputStream("slideshow.pptx")); 列表<XSLFSlide> slides = ppt.getSlides(); XSLFSlide thirdSlide = slides.get(2); ppt.setSlideOrder(thirdSlide,0); //将第三张幻灯片移动到开头
XMLSlideShow ppt = new XMLSlideShow(); //检索页面大小。坐标表示为点数(72 dpi) java.awt.Dimension pgsize = ppt.getPageSize(); int pgx = pgsize.width; //滑动宽度的点数 int pgy = pgsize.height; //滑动高度的点数 //设置新页面大小 ppt.setPageSize(new java.awt.Dimension(1024,768));
The following code demonstrates how to iterate over shapes for each slide.ide
XMLSlideShow ppt = new XMLSlideShow(new FileInputStream("slideshow.pptx")); // get slides for (XSLFSlide slide : ppt.getSlides()) { for (XSLFShape sh : slide.getShapes()) { // name of the shape String name = sh.getShapeName(); // shapes's anchor which defines the position of this shape in the slide if (sh instanceof PlaceableShape) { java.awt.geom.Rectangle2D anchor = ((PlaceableShape)sh).getAnchor(); } if (sh instanceof XSLFConnectorShape) { XSLFConnectorShape line = (XSLFConnectorShape) sh; // work with Line } else if (sh instanceof XSLFTextShape) { XSLFTextShape shape = (XSLFTextShape) sh; // work with a shape that can hold text } else if (sh instanceof XSLFPictureShape) { XSLFPictureShape shape = (XSLFPictureShape) sh; // work with Picture } } }
XMLSlideShow ppt = new XMLSlideShow(); XSLFSlide slide = ppt.createSlide(); byte[] pictureData = IOUtils.toByteArray(new FileInputStream("image.png")); XSLFPictureData pd = ppt.addPicture(pictureData, PictureData.PictureType.PNG); XSLFPictureShape pic = slide.createPicture(pd);
XMLSlideShow ppt = new XMLSlideShow(new FileInputStream("slideshow.pptx")); for(XSLFPictureData data : ppt.getAllPictures()){ byte[] bytes = data.getData(); String fileName = data.getFileName(); }
XMLSlideShow ppt = new XMLSlideShow(); XSLFSlide slide = ppt.createSlide(); XSLFTextBox shape = slide.createTextBox(); XSLFTextParagraph p = shape.addNewTextParagraph(); XSLFTextRun r1 = p.addNewTextRun(); r1.setText("The"); r1.setFontColor(Color.blue); r1.setFontSize(24.); XSLFTextRun r2 = p.addNewTextRun(); r2.setText(" quick"); r2.setFontColor(Color.red); r2.setBold(true); XSLFTextRun r3 = p.addNewTextRun(); r3.setText(" brown"); r3.setFontSize(12.); r3.setItalic(true); r3.setStrikethrough(true); XSLFTextRun r4 = p.addNewTextRun(); r4.setText(" fox"); r4.setUnderline(true);
XMLSlideShow ppt = new XMLSlideShow(); XSLFSlide slide = ppt.createSlide(); // assign a hyperlink to a text run XSLFTextBox shape = slide.createTextBox(); XSLFTextRun r = shape.addNewTextParagraph().addNewTextRun(); r.setText("Apache POI"); XSLFHyperlink link = r.createHyperlink(); link.setAddress("http://poi.apache.org");
选项:
-scale
-slide
怎么运行的:
XSLFSlide对象实现了一个绘制(Graphics2D图形)方法,它将幻灯片中的全部形状递归地绘制到提供的图形画布中:ui
slide.draw(graphics);
其中图形是实现java.awt.Graphics2D的类。在PPTX2PNG中,图形画布派生自java.awt.image.BufferedImage,即目标是内存中的图像,但在通常状况下,您能够传递任何兼容的java.awt.Graphics2D实现。该 PPTX2SVG 示例演示了如何使用Apache蜡染到幻灯片转换成.PPTX SVG格式。this
XMLSlideShow ppt = new XMLSlideShow(); String[] inputs = {"presentations1.pptx", "presentation2.pptx"}; for(String arg : inputs){ FileInputStream is = new FileInputStream(arg); XMLSlideShow src = new XMLSlideShow(is); is.close(); for(XSLFSlide srcSlide : src.getSlides()){ ppt.createSlide().importContent(srcSlide); } } FileOutputStream out = new FileOutputStream("merged.pptx"); ppt.write(out); out.close();