Android項目記錄點滴

服務器端:(根據Apache POI庫函數其中SlideShow表示PPT文檔,Slide表示某一張幻燈片

1.先把電腦中的PPT文件讀入到一個字節數組中。(輸入流-->字節數組-->輸出流-->字節數組)

    FileInputStream inputStream = new FileInputStream(Path);

    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
    byte[] byffer = new byte[1024];
    int length = -1;
    while ((length = is.read(byffer)) != -1) {
    byteArrayOutputStream.write(byffer, 0, length);

    }
    byteArrayOutputStream.close();
    byte[]  fileBuffer = byteArrayOutputStream.toByteArray();


2.創建SlideShow(把PPT輸入流轉爲SlideShow)

(Apache POI庫函數SlideShow(java.io.InputStream inputStream)Constructs a Powerpoint document from an input stream.

  FileInputStream inputStream = new FileInputStream(Path);

   SlideShow ppt = new SlideShow(is);

  如果是pptx格式的PPT,則,XMLSlideShow pptx = new XMLSlideShow(is);


3.獲取幻燈片數組

    Slide slide = ppt.getSlides();

    如果是pptx格式的PPT,則,XSLFSlide slidePPTx = pptx.getSlides();


4.使用batik操作SVG圖片(生成DOM樹)

DOMImplementation domImpl = SVGDOMImplementation.getDOMImplementation();
Document doc = domImpl.createDocument("http://www.w3.org/2000/svg", "svg", null);

5.渲染doc (Document 爲存放PPT或pptx的XML數據結構)

SVGGraphics2D graphics = new SVGGraphics2D(doc);
graphics.setSVGCanvasSize( pgsize);
graphics.setPaint(Color.white);

slide[currentPage - 1].draw(graphics);
Element svgRoot = doc.getDocumentElement();
graphics.getRoot(svgRoot);


6.在畫布中展示PPT轉化爲的SVG圖片

JSVGCanvas _svgCanvas = new JSVGCanvas();

_svgCanvas.setDocument(doc);

發佈了46 篇原創文章 · 獲贊 18 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章