請注意,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();