当前位置: 代码迷 >> J2EE >> 使用poi docx转html,图片没展示
  详细解决方案

使用poi docx转html,图片没展示

热度:139   发布时间:2016-04-17 23:00:23.0
使用poi docx转html,图片没有展示
我用poi 把docx转html,对应文字格式都正确,但是图片不回展示出来,
源码:
XWPFDocument document = new XWPFDocument( new FileInputStream("D:\\crm.docx") );
        XHTMLOptions options = XHTMLOptions.create().indent( 4 );
        // Extract image
        List<XWPFPictureData> pics=document.getAllPictures(); 
        for (XWPFPictureData pic : pics) {
                System.out.println(pic.getPictureType() + file.separator + pic.suggestFileExtension()
                        +file.separator+pic.getFileName());
                byte[] bytev = pic.getData();
                FileOutputStream fos = new FileOutputStream("d:\\"+pic.getFileName());
                fos.write(bytev);
            }
        File imageFolder = new File( "D:/vfsroot/1000000/ueditor_upload/images" + fileInName );
        options.setExtractor( new FileImageExtractor( imageFolder ) );
        // URI resolver
        options.URIResolver( new FileURIResolver( imageFolder ) );
        
        File outFile = new File( fileOutName );
        outFile.getParentFile().mkdirs();
        OutputStream out = new FileOutputStream( outFile );
        XHTMLConverter.getInstance().convert( document, out, options );

通过 for (XWPFPictureData pic : pics) {
                System.out.println(pic.getPictureType() + file.separator + pic.suggestFileExtension()
                        +file.separator+pic.getFileName());
                byte[] bytev = pic.getData();
                FileOutputStream fos = new FileOutputStream("d:\\"+pic.getFileName());
                fos.write(bytev);
            }我可以获取到对应图片,但是怎么在html里面正确的位置展示出来?
------解决思路----------------------
这个你要把图片保存到html可访问的地方,把地址填入进去。。或者使用内嵌资源的方式。。。
还有个简单方法,就是调用com接口或者Openoffice 直接word转换html即可。。
自己书写word转html简单的情况可以应付,复杂的布局文档等是比较麻烦的。。
------解决思路----------------------

InputStream is = null;
try {
is = new FileInputStream(src);
XWPFDocument document = new XWPFDocument(is);
XHTMLOptions options = XHTMLOptions.create().indent(4);

//img的src属性 后面会自动添加/word/media
//这里就是images/word/media/ + 图片名字
options.URIResolver(new BasicURIResolver("images"));
//>> 文件的保存路径 之后自动会添加 word\media子路径
FileImageExtractor extractor = new FileImageExtractor(new File(
htmlImagesPath));
options.setExtractor(extractor);
XHTMLConverter.getInstance().convert(document,
new FileOutputStream(des), options);

} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

不需要手动添加代码保存图片
  相关解决方案