java 实现在线预览--poi 实现word 、excel 、ppt 转html
java 实现在线预览
- -之poi 实现word 、excel 、ppt 转html
###word转html package wordToHtml;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.InputStream;import java.util.List;l.parsers.DocumentBuilderFactory;l.transform.OutputKeys;l.transform.Transformer;l.transform.TransformerFactory;l.transform.dom.DOMSource;l.transform.stream.StreamResult;import org.apachemons.io.FileUtils;import org.apache.poi.hwpf.HWPFDocument;import org.apache.verter.PicturesManager;import org.apache.verter.WordToHtmlConverter;import org.apache.poi.hwpf.usermodel.Picture;import org.apache.poi.hwpf.usermodel.PictureType;import org.w3c.dom.Document;public class PoiWordToHtml { public static void main(String[] args) throws Throwable {  final String path = "D:\\poi-test\\wordToHtml\\";  final String file = "⼈员选择系分.doc";  InputStream input = new FileInputStream(path + file);  HWPFDocument wordDocument = new HWPFD
ocument(input);  WordToHtmlConverter wordToHtmlConverter = new WordToHtmlConverter(    wInstance().newDocumentBuilder()      .newDocument());  wordToHtmlConverter.setPicturesManager(new PicturesManager() {  public String savePicture(byte[] content, PictureType pictureType,    String suggestedName, float widthInches, float heightInches) {    return suggestedName;  }  });  wordToHtmlConverter.processDocument(wordDocument);  List pics = PicturesTable().getAllPictures();  if (pics != null) {  for (int i = 0; i < pics.size(); i++) {    Picture pic = (Picture) (i);    try {    pic.writeImageContent(new FileOutputStream(path        + pic.suggestFullFileName()));    } catch (FileNotFoundException e) {    e.printStackTrace();    }  }  }  Document htmlDocument = Document();  ByteArrayOutputStream outStream = new ByteArrayOutputStream();  DOMSource domSource = new DOMSource(htmlDocument);  StreamResult streamResult = new StreamResult(outStream);  TransformerFactory tf = wInstance();  Transformer serializer = tf.newTransformer();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
###excel转html  Transformer serializer = tf.newTransformer();  serializer.setOutputProperty(OutputKeys.ENCODING, "utf-8");  serializer.setOutputProperty(OutputKeys.INDENT, "yes");  serializer.setOutputProperty(OutputKeys.
METHOD, "html");  ansform(domSource, streamResult);  outStream.close();  String content = new ByteArray());  FileUtils.writeStringToFile(new File(path, "⼈员选择系分.html"), content, "utf-8"); }}
56
57
58
59
60
61
62
63
64
65package excelToHtml;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.util.List;l.parsers.DocumentBuilderFactory;l.transform.OutputKeys;l.transform.Transformer;l.transform.TransformerFactory;l.transform.dom.DOMSource;l.transform.stream.StreamResult;import org.apachemons.io.FileUtils;import org.apache.verter.ExcelToHtmlConverter;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.verter.PicturesManager;import org.apache.verter.WordToHtmlConverter;import org.apache.poi.hwpf.usermodel.Picture;import org.apache.poi.hwpf.usermodel.PictureType;import org.w3c.dom.Document;public class PoiExcelToHtml { final static String path = "D:\\poi-test\\excelToHtml\\";  final static String file = "exportExcel.xls"; public static void main(String args[]) throws Exception {    InputStream input=new FileInputStream(path+file);  HSSFWorkbook excelBook=new HSSFWorkbook(input);  ExcelToHtmlConverter excelToHtmlConverter = new ExcelToHtmlConverter (wInstance().newDocumentBuilder().newDocume
excelToHtmlConverter.processWorkbook(excelBook);  List pics = AllPictures();    if (pics != null) {        for (int i = 0; i < pics.size(); i++) {            Picture pic = (Picture) (i);            try {                pic.writeImageContent (new FileOutputStream (path + pic.suggestFullFileName() ) );            } catch (FileNotFoundException e) {                e.printStackTrace();            }        }    }    Document htmlDocument =Document();    ByteArrayOutputStream outStream = new ByteArrayOutputStream();1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
###ppt转html
其实只是ppt转图⽚,有了图⽚后放到页⾯上去,点击下⼀页就⼀张张显⽰就可以了。这⾥只介绍ppt
转图⽚的过程。    ByteArrayOutputStream outStream = new ByteArrayOutputStream();    DOMSource domSource = new DOMSource (htmlDocument);    StreamResult streamResult = new StreamResult (outStream);    TransformerFactory tf = wInstance();    Transformer serializer = tf.newTransformer();    serializer.setOutputProperty (OutputKeys.ENCODING, "utf-8");    serializer.setOutputProperty (OutputKeys.INDENT, "yes");    serializer.setOutputProperty (OutputKeys.METHOD, "html");    ansform (domSource, streamResult);    outStream.close();    String content = new String (ByteArray() );    FileUtils.writeStringToFile(new File (path, "exportExcel.html"), content, "utf-8"); }}
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65package pptToImg;import java.awt.Dimension;  import java.io.File;  import java.io.FileInputStream;  import java.io.FileNotFoundException;  import java.io.FileOutputStream;  import java.io.IOException;    import java.awt.Color;  import java.awt.Dimension;  import java.awt.Graphics2D;  import
om.Rectangle2D;  import java.awt.image.BufferedImage;    import org.apache.del.TextRun;  import org.apache.d.Slide;  import org.apache.poi.hslf.usermodel.RichTextRun;  import org.apache.poi.hslf.usermodel.SlideShow;    public class PPTtoImage {      public static void main(String[] args) {          // 读⼊PPT ⽂件          File file = new File("D:/poi-test/pptToImg/test.ppt");          doPPTtoImage(file);      }        public static boolean doPPTtoImage(File file) {          boolean isppt = checkFile(file);          if (!isppt) {              System.out.println("The image you specify don't exit!");              return false;          }          try {                FileInputStream is = new FileInputStream(file);              SlideShow ppt = new SlideShow(is);              is.close();              Dimension pgsize = PageSize();              org.apache.del.Slide[] slide = Slides();              for (int i = 0; i < slide.length; i++) {                  System.out.print("第" + i + "页。");
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
ppt转图⽚有个缺陷,就是ppt⾥不是宋体的字有些可能会变成框框。以上都需要引⼊poi的jar包。
要实现在线预览,只需把转换得到的html在新标签页打开或者镶嵌到某块区域就可以展现了。                                  TextRun[] truns = slide[i].getTextRuns();                      for ( int k=0;k<truns.length;k++){                        RichTextRun[] rtruns = truns[k].getRichTextRuns();                        for(int l=0;l<rtruns.length;l++){                            int index = rtruns[l].getFontIndex();                              String name = rtruns[l].getFontName();                                        rtruns[l].setFontIndex(1);                              rtruns[l].setFontName("宋体");  //                        System.out.println(rtruns[l].getText());                  }     
                }                      BufferedImage img = new BufferedImage(pgsize.width,pgsize.height, BufferedImage.TYPE_INT_RGB);                    Graphics2D graphics = ateGraphics();                  graphics.setPaint(Color.BLUE);                  graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width, pgsize.height));                  slide[i].draw(graphics);                    // 这⾥设置图⽚的存放路径和图⽚的格式(jpeg,png,bmp 等等),注意⽣成⽂件路径                  FileOutputStream out = new FileOutputStream("D:/poi-test/pptToImg/pict_"+ (i + 1) + ".jpeg");                  javax.imageio.ImageIO.write(img, "jpeg", out);                  out.close();                }              System.out.println("success!!");              return true;          } catch (FileNotFoundException e) {              System.out.println(e);              // System.out.println("Can't find the image!");          } catch (IOException e) {          }          return false;      }        // function 检查⽂件是否为PPT      public static boolean checkFile(File file) {            boolean isppt = false;          String filename = Name();          String suffixname = null;          if (filename != null && filename.indexOf(".") != -1) {              suffixname = filename.substring(filename.indexOf("."));              if (suffixname.equals(".ppt")) {                  isppt = true;              }              return isppt;          } else {              return isppt;          }      }    }
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
html document是什么
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。