精华内容
下载资源
问答
  • java实现在线预览--poi实现word、excel、ppt转html

    万次阅读 多人点赞 2019-07-31 18:39:43
    java实现在线预览- -之poi实现word、excel、ppt转html

    java实现在线预览

    - -之poi实现word、excel、ppt转html

    ###简介
    java实现在线预览功能是一个大家在工作中也许会遇到的需求,如果公司有钱,直接使用付费的第三方软件或者云在线预览服务就可以了,例如永中office、office web 365(http://www.officeweb365.com/)他们都有云在线预览服务,就是要钱0.0
    如果想要免费的,可以用openoffice,还需要借助其他的工具(例如swfTools、FlexPaper等)才行,可参考这篇文章http://blog.csdn.net/z69183787/article/details/17468039,写的挺细的,实现原理就是:
    1.通过第三方工具openoffice,将word、excel、ppt、txt等文件转换为pdf文件;
    2.通过swfTools将pdf文件转换成swf格式的文件;
    3.通过FlexPaper文档组件在页面上进行展示。
    当然如果装了Adobe Reader XI,那把pdf直接拖到浏览器页面就可以直接打开预览,这样就不需要步骤2、3了,前提就是客户装了Adobe Reader XI这个pdf阅读器。
    我这里介绍通过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;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.transform.OutputKeys;
    import javax.xml.transform.Transformer;
    import javax.xml.transform.TransformerFactory;
    import javax.xml.transform.dom.DOMSource;
    import javax.xml.transform.stream.StreamResult;
    import org.apache.commons.io.FileUtils;
    import org.apache.poi.hwpf.HWPFDocument;
    import org.apache.poi.hwpf.converter.PicturesManager;
    import org.apache.poi.hwpf.converter.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 HWPFDocument(input);
      WordToHtmlConverter wordToHtmlConverter = new WordToHtmlConverter(
        DocumentBuilderFactory.newInstance().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 = wordDocument.getPicturesTable().getAllPictures();
      if (pics != null) {
       for (int i = 0; i < pics.size(); i++) {
        Picture pic = (Picture) pics.get(i);
        try {
         pic.writeImageContent(new FileOutputStream(path
           + pic.suggestFullFileName()));
        } catch (FileNotFoundException e) {
         e.printStackTrace();
        }
       }
      }
      Document htmlDocument = wordToHtmlConverter.getDocument();
      ByteArrayOutputStream outStream = new ByteArrayOutputStream();
      DOMSource domSource = new DOMSource(htmlDocument);
      StreamResult streamResult = new StreamResult(outStream);
      TransformerFactory tf = TransformerFactory.newInstance();
      Transformer serializer = tf.newTransformer();
      serializer.setOutputProperty(OutputKeys.ENCODING, "utf-8");
      serializer.setOutputProperty(OutputKeys.INDENT, "yes");
      serializer.setOutputProperty(OutputKeys.METHOD, "html");
      serializer.transform(domSource, streamResult);
      outStream.close();
      String content = new String(outStream.toByteArray());
      FileUtils.writeStringToFile(new File(path, "人员选择系分.html"), content, "utf-8");
     }
    }
    

    ###excel转html

    package 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;
    
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.transform.OutputKeys;
    import javax.xml.transform.Transformer;
    import javax.xml.transform.TransformerFactory;
    import javax.xml.transform.dom.DOMSource;
    import javax.xml.transform.stream.StreamResult;
    
    import org.apache.commons.io.FileUtils;
    import org.apache.poi.hssf.converter.ExcelToHtmlConverter;
    import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    import org.apache.poi.hwpf.converter.PicturesManager;
    import org.apache.poi.hwpf.converter.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 (DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument() );
    	 excelToHtmlConverter.processWorkbook(excelBook);
    	 List pics = excelBook.getAllPictures();
         if (pics != null) {
             for (int i = 0; i < pics.size(); i++) {
                 Picture pic = (Picture) pics.get (i);
                 try {
                     pic.writeImageContent (new FileOutputStream (path + pic.suggestFullFileName() ) );
                 } catch (FileNotFoundException e) {
                     e.printStackTrace();
                 }
             }
         }
         Document htmlDocument =excelToHtmlConverter.getDocument();
         ByteArrayOutputStream outStream = new ByteArrayOutputStream();
         DOMSource domSource = new DOMSource (htmlDocument);
         StreamResult streamResult = new StreamResult (outStream);
         TransformerFactory tf = TransformerFactory.newInstance();
         Transformer serializer = tf.newTransformer();
         serializer.setOutputProperty (OutputKeys.ENCODING, "utf-8");
         serializer.setOutputProperty (OutputKeys.INDENT, "yes");
         serializer.setOutputProperty (OutputKeys.METHOD, "html");
         serializer.transform (domSource, streamResult);
         outStream.close();
    
         String content = new String (outStream.toByteArray() );
    
         FileUtils.writeStringToFile(new File (path, "exportExcel.html"), content, "utf-8");
     }
    }
    

    ###ppt转html
    其实只是ppt转图片,有了图片后放到页面上去,点击下一页就一张张显示就可以了。这里只介绍ppt转图片的过程。

    package 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 java.awt.geom.Rectangle2D;   
    import java.awt.image.BufferedImage;   
      
    import org.apache.poi.hslf.model.TextRun;   
    import org.apache.poi.hslf.record.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 = ppt.getPageSize();   
                org.apache.poi.hslf.model.Slide[] slide = ppt.getSlides();   
                for (int i = 0; i < slide.length; i++) {   
                    System.out.print("第" + i + "页。");   
                       
                    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 = img.createGraphics();   
                    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 = file.getName();   
            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;   
            }   
        }   
      
    }  
    

    ppt转图片有个缺陷,就是ppt里不是宋体的字有些可能会变成框框。
    以上都需要引入poi的jar包。
    要实现在线预览,只需把转换得到的html在新标签页打开或者镶嵌到某块区域就可以展现了。

    展开全文
  • 前端实现Word在线预览

    万次阅读 2019-09-17 18:14:05
    因为项目需要,要实现在浏览器端在线预览word文档,根据文档url动态预览文件内容。因为浏览器不支持word格式。所以在浏览器端语言word的方法也就有以下几种。 转为pdf,然后预览 因为浏览器支持pdf预览,这种方法也...

    因为项目需要,要实现在浏览器端在线预览word文档,根据文档url动态预览文件内容。因为浏览器不支持word格式。所以在浏览器端语言word的方法也就有以下几种。

    • 转为pdf,然后预览

    因为浏览器支持pdf预览,这种方法也不错,缺点是需要开发后端代码

    • 转为html,然后预览

    缺点是转为html后格式混乱,十分麻烦,图片也是问题

    • 利用微软提供的接口

    https://view.officeapps.live.com/op/view.aspx?src=”的后面拼上你的服务器word文件地址。反正我试了好几次都是解析失败

    • 利用XDOC实现在线预览

    格式有变化,整体还正看,比较简单

    利用XDOC实现word在线预览

    注册

    注册过程十分简单,输入邮箱,两个key直接发送到你的邮箱,注册地址http://www.xdocin.com/xdoc?_func=resource

    替换url,只要替换下面url中的key为你的只读key和文档地址就可以

    http://www.xdocin.com/xdoc?_func=to&_format=html&_cache=true&_key=你的只读key&_xdoc=你的文档地址

    demo

     window.open(
              "http://www.xdocin.com/xdoc?_func=to&_format=html&_cache=true&_key=wqnpflggfjhezbemadrpe4u5xe&_xdoc=http://sss123.cn:8089/oss/files/1234455.doc",
              "_blank"
            );

    效果预览

    展开全文
  • word在线预览api接口 office在线预览接口 word转图片 ppt在线预览 excel在线预览 预览支持的文件格式:word(doc,docx),excel(xls,xlsx),ppt(ppt,pptx),pdf 生成预览原理:文件转成图片 支持移动端浏览,...

    word在线预览api接口 office在线预览接口 word转图片 ppt在线预览 excel在线预览

    预览支持的文件格式:word(doc,docx),excel(xls,xlsx),ppt(ppt,pptx),pdf

    生成预览原理:文件转成图片

    支持移动端浏览,只要能使用浏览器上网都可以使用,不需要安装任何第三方工具。服务器端也不需要安装office软件。

    代码是.net编写的 .net framework 4.0 或者以上即可。

    在线演示地址:https://demo.officesee.com/OfficeToImage/index.aspx

    管理地址:https://demo.officesee.com/OfficeToImage/main.html

    主要特色:

    • 带后台控制功能
    • 可以设置转换的图片格式
    • 可以设置允许转换的来源域名权限
    • 可以设置文档转换的清楚度
    • 可以设置允许查询的文档页码
    • 支持增加水印
    • 支持返回html页,json串

     效果图:

    展开全文
  • office在线预览 word在线预览 excel在线预览 文件浏览接口服务 支持移动端浏览,只要能使用浏览器上网都可以使用,不需要安装任何第三方工具。 1、word在线预览 excel在线预览,.net源代码,里面有上传word、excel...

    office在线预览 word在线预览 excel在线预览 文件浏览接口服务

    支持移动端浏览,只要能使用浏览器上网都可以使用,不需要安装任何第三方工具。

    1、word在线预览 excel在线预览,.net源代码,里面有上传word、excel文件生成在线预览文件(转html模式)

    开发环境:visual studio 2010 + office 2013

    在线演示地址:

    https://demo.officesee.com/FilePreview/Default.aspx

    2、文件在线浏览接口,将文件地址传给api接口地址,就可以进行在线浏览,这种方式方便与各位的系统集成,不需要额外做二次开发。将文件浏览服务配置好,直接调用就可以了。(转html)

    开发环境:visual studio 2010 + office 2013

    服务配置环境:IIS7.0或以上,.net framwork 4.0或以上

    在线演示地址:

    http://demo.officesee.com/FilePreview/UpLoad.aspx?url=http://demo.officesee.com/docdemo/test.docx

    注意:url= 后面接的是文件地址,将文件地址作为参数传入,各位在测试的时候可以换成自己的文件地址。

    (注意预览打开时有弹窗可能被浏览器阻止,浏览器设置下允许打开即可

    PS:有的人问我,为何不能转PDF,当然你可以转PDF,PDF文件在线预览是需要安装paf阅读器的,而转成html是不需要安装任何工具的,只要你能上网,并且不限制浏览器。

     

    .

    展开全文
  • word在线预览

    2020-04-09 10:01:40
    采用明道的方式 可以下载、可以使用追加端口,微软的试了加端口不行,要标准域名才可以。 文档地址:https://docview.mingdao.com/op/gene <iframe src='https://docview.mingdao.com/op/embed.aspx?src=文件...
  • c#word预览

    2014-08-25 10:48:33
    之前我在网站找了很多word预览都没找到,后
  • vue移动端实现word在线预览

    千次阅读 2020-12-28 16:17:29
    上一篇说了excel文件的预览,其实word预览跟excel预览很相似,代码都大差不差,言归正传 word预览同样要使用插件,这里使用的是mammoth插件,首先vue项目引入: npm install mammoth 在预览的页面导入 import ...
  • 预览word文件无法预览If you have a lot of Word documents and are not sure which one contains the information you need, Microsoft Word 2007 allows you to preview a document within Word without having to...
  • 一、word预览–mammoth.js 安装:npm install --save mammoth tip:只能预览.docx文件 word.vue: <template> <div> <div id="wordView" v-html="vHtml" /> </div> </template&...
  • 在线word预览方案

    千次阅读 2019-09-10 17:56:31
    1、后台word转pdf 2、pageOffice 3、利用word可以直接转html 4、mammoth.js(存在一些瑕疵) https://jstool.gitlab.io/zh-cn/demo/preview-ms-word-docx-document-in-browser 5、微软在线服务 ...
  • java实现excel、word在线预览

    千次阅读 2019-03-22 23:48:51
    最近项目上有一个新的需求是实现附件的预览,支持word、excel、pdf等附件的在线预览,刚接到任务时一脸懵逼,以为直接访问本地的附件地址就可以,结果word、excel直接下载下来了,紧接着去百度各种搜集资料,发现...
  • 要实现通知公告功能, 需要上传word文档, 普通用户可以在公告栏看到,点击链接可以查看服务器的word文档。 求实现
  • 基于Android的Word在线预览

    万次阅读 多人点赞 2016-03-06 17:59:30
    转自:... 经过一些查找工作,终于找到了可以在android系统上使用的用于读取Word格式文档的开源包--POI(The Java API For Microsoft Documents)。下载地址:http://poi.apache.org/  POI
  • word预览 1,http://view.officeapps.live.com/op/view.aspx?src=‘公网地址’ 2.word转pdf <el-dialog title="预览文件" :visible="viewFileDialogVisible" fullscreen :before-close="handleClose" > ...
  • PHP 实现word在线预览

    千次阅读 2018-02-08 20:25:28
    word转PDF的命令: java -jar /opt/jodconverter-2.2.2/lib/jodconverter-cli-2.2.2.jar /var/2.docx /var/2.pdf 第四步:下载 PDFswf2tools 实现pdf转swf PDF转swf的命令: # pdf2swf -o /var/2.swf -T -z -t -f /...
  • 微软api的word在线预览

    万次阅读 2018-07-31 18:02:23
    若要实现word在线预览一般有几个方式: 1 转pdf,在线展示; 2 利用xdocin等第三方平台在线展示 如果不介意这种标识的话,可以使用这种方式,只需有一个静态服务器即可;具体使用方式可以去参考官网; 3 ...
  • php实现word在线预览

    2016-09-13 02:19:28
    用户之前提交在服务器的word文件, 能在线预览(能在线编辑最好) ,要用的是lnmp环境.求具体实现步骤.谢谢大牛啊
  • Vue - element-ui 中预览 word 、exce、ppt以及pdf文件

    万次阅读 多人点赞 2019-08-17 16:21:01
    最近写了个有 预览word 、Exce、ppt以及pdf文件 的后台 管理 在网上也找了 很多 就感觉很复杂 ,当然最后还是实现了 , 本博主一项喜欢简单 越简单越好 越好理解 废话不多说 先上效果图 (我就喜欢那种有图的代码 能...
  • 目前从html转换的word为doc格式,而图片处理支持的是docx格式,所以需要手动把doc另存为docx,然后才可以进行图片替换。 一.添加maven依赖 主要使用了以下和poi相关的依赖,为了便于获取html的图片元素,还使用了...
  • WinForm 预览 word 和 Excel

    热门讨论 2012-03-08 12:24:14
    qq:574311505 word to rtf 通过 RichTextBox LoadFile 实现预览 word to html 通过 WebBrowser 实现预览 excel to html 通过 WebBrowser 实现预览
  • spring boot2.X word在线预览 pdf.js

    千次阅读 2019-06-21 21:25:18
    最近公司项目需求需要在线预览word文档,并且不能在在线下载和编辑。在此记录我是如何做的。 针对word的在线预览晚上大多给的解决方案就是先把word文件转成pdf,然后通过pdf.js在线预览pdf。 下面是详情详细的操作...
  • word转为html依赖mammoth.js(缺点是只能保留基础样式,word的复杂样式会丢失。...从服务端获取word并实现预览: function preView(url) { var _this = this; var xhr = new XMLHttpRequest() xhr.o
  • asp .net 实现word文档在线预览

    热门讨论 2015-05-26 23:29:10
    最近由于项目需要,特利用vs2010整理了word文档在线预览,此处主要是用office-toolswf-flexpaper实现,在此把这一功能整理成了word文档和一个小例子,希望对您有用。
  • word 在线预览类库:Aspose.word.dll

    千次阅读 2016-09-22 14:28:07
    支持各种浏览器预览。下载地址:http://download.csdn.net/detail/qq_23663693/9636933
  • 看看XDOC如何做Word文档预览

    千次阅读 2020-02-24 23:04:20
    移动互联网的到来,使得Word文档在移动端的显示成了问题。大家解决方法大概有三种:转换为PDF、用HTML模拟页面效果、纯网页效果。 XDOC的用了第三种方式,将word文档实时转换为纯网页,生成的页面简洁,尤其对...
  • android预览word(WPS预览)

    千次阅读 2018-01-29 11:22:00
    在项目中需要加入预览文件功能,在网上搜索了大部分的回答,集合自己的项目综合考虑,调用WPS的方式更加适合自己,简单不用第三方的sdk,但是手机中得安装WPS。下面是代码:(复制的)    Intent intent...
  • java word在线预览转换html

    千次阅读 2017-11-02 18:54:31
    公司需要做一个文件管理柜需要在线预览文档,研究一个礼拜了。成了! 但是文档暂时不支持office 2010 只能到2007!
  • 在线预览  ... 通过拼接的地址即可实现office 的在线预览 需要注意的是office 在线预览限制:文档访问地址不能直接使用 ip,需要通过域名访问,并且端口必须是 80 ...Word:docx、docm、dotm、dotx  Excel:xls...
  • java 实现 word 文档的在线预览,资源包含代码和jar包,下载放入项目既可以使用
  • 前端实现word预览功能

    2020-10-28 11:47:30
    前端实现word预览功能一. 文档地址要求二. 调用方法1. html方式2. script方式 一. 文档地址要求 文档地址以http/https开头,外网可访问 二. 调用方法 http://view.xdocin.com/xdoc?_xdoc=你的文档地址 文档地址要用...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 31,285
精华内容 12,514
关键字:

word没有预览