精华内容
下载资源
问答
  • 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在新标签页打开或者镶嵌到某块区域就可以展现了。

    展开全文
  • Java实现在线预览--openOffice实现

    万次阅读 多人点赞 2019-07-31 18:39:57
    Java实现在线预览–openOffice实现

    #Java实现在线预览–openOffice实现
    ##简介
    之前有写了poi实现在线预览的文章,里面也说到了使用openOffice也可以做到,这里就详细介绍一下。
    我的实现逻辑有两种:
    一、利用jodconverter(基于OpenOffice服务)将文件(.doc、.docx、.xls、.ppt)转化为html格式。
    二、利用jodconverter(基于OpenOffice服务)将文件(.doc、.docx、.xls、.ppt)转化为pdf格式。
    转换成html格式大家都能理解,这样就可以直接在浏览器上查看了,也就实现了在线预览的功能;转换成pdf格式这点,需要用户安装了Adobe Reader XI,这样你会发现把pdf直接拖到浏览器页面可以直接打开预览,这样也就实现了在线预览的功能。
    ##将文件转化为html格式或者pdf格式
    话不多说,直接上代码。

    package com.pdfPreview.util;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.net.ConnectException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    import com.artofsolving.jodconverter.DocumentConverter;
    import com.artofsolving.jodconverter.openoffice.connection.OpenOfficeConnection;
    import com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection;
    import com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter;
    /**
     * 利用jodconverter(基于OpenOffice服务)将文件(*.doc、*.docx、*.xls、*.ppt)转化为html格式或者pdf格式,
     * 使用前请检查OpenOffice服务是否已经开启, OpenOffice进程名称:soffice.exe | soffice.bin
     * 
     * @author yjclsx
     */
    public class Doc2HtmlUtil {
    
    	private static Doc2HtmlUtil doc2HtmlUtil;
    
    	/**
    	 * 获取Doc2HtmlUtil实例
    	 */
    	public static synchronized Doc2HtmlUtil getDoc2HtmlUtilInstance() {
    		if (doc2HtmlUtil == null) {
    			doc2HtmlUtil = new Doc2HtmlUtil();
    		}
    		return doc2HtmlUtil;
    	}
    
    	/**
    	 * 转换文件成html
    	 * 
    	 * @param fromFileInputStream:
    	 * @throws IOException 
    	 */
    	public String file2Html(InputStream fromFileInputStream, String toFilePath,String type) throws IOException {
    		Date date = new Date();
    		SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
    		String timesuffix = sdf.format(date);
    		String docFileName = null;
    		String htmFileName = null;
    		if("doc".equals(type)){
    			docFileName = "doc_" + timesuffix + ".doc";
    			htmFileName = "doc_" + timesuffix + ".html";
    		}else if("docx".equals(type)){
    			docFileName = "docx_" + timesuffix + ".docx";
    			htmFileName = "docx_" + timesuffix + ".html";
    		}else if("xls".equals(type)){
    			docFileName = "xls_" + timesuffix + ".xls";
    			htmFileName = "xls_" + timesuffix + ".html";
    		}else if("ppt".equals(type)){
    			docFileName = "ppt_" + timesuffix + ".ppt";
    			htmFileName = "ppt_" + timesuffix + ".html";
    		}else{
    			return null;
    		}
    
    		File htmlOutputFile = new File(toFilePath + File.separatorChar + htmFileName);
    		File docInputFile = new File(toFilePath + File.separatorChar + docFileName);
    		if (htmlOutputFile.exists())
    			htmlOutputFile.delete();
    		htmlOutputFile.createNewFile();
    		if (docInputFile.exists())
    			docInputFile.delete();
    		docInputFile.createNewFile();
    		/**
    		 * 由fromFileInputStream构建输入文件
    		 */
    		try {
    			OutputStream os = new FileOutputStream(docInputFile);
    			int bytesRead = 0;
    			byte[] buffer = new byte[1024 * 8];
    			while ((bytesRead = fromFileInputStream.read(buffer)) != -1) {
    				os.write(buffer, 0, bytesRead);
    			}
    
    			os.close();
    			fromFileInputStream.close();
    		} catch (IOException e) {
    		}
    	
    	    OpenOfficeConnection connection = new SocketOpenOfficeConnection(8100);
    		try {
    			connection.connect();
    		} catch (ConnectException e) {
    			System.err.println("文件转换出错,请检查OpenOffice服务是否启动。");
    		}
    		// convert
    		DocumentConverter converter = new OpenOfficeDocumentConverter(connection);
    		converter.convert(docInputFile, htmlOutputFile);
    		connection.disconnect();
    		// 转换完之后删除word文件
    		docInputFile.delete();
    		return htmFileName;
    	}
    	
    	/**
    	 * 转换文件成pdf
    	 * 
    	 * @param fromFileInputStream:
    	 * @throws IOException 
    	 */
    	public String file2pdf(InputStream fromFileInputStream, String toFilePath,String type) throws IOException {
    		Date date = new Date();
    		SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
    		String timesuffix = sdf.format(date);
    		String docFileName = null;
    		String htmFileName = null;
    		if("doc".equals(type)){
    			docFileName = "doc_" + timesuffix + ".doc";
    			htmFileName = "doc_" + timesuffix + ".pdf";
    		}else if("docx".equals(type)){
    			docFileName = "docx_" + timesuffix + ".docx";
    			htmFileName = "docx_" + timesuffix + ".pdf";
    		}else if("xls".equals(type)){
    			docFileName = "xls_" + timesuffix + ".xls";
    			htmFileName = "xls_" + timesuffix + ".pdf";
    		}else if("ppt".equals(type)){
    			docFileName = "ppt_" + timesuffix + ".ppt";
    			htmFileName = "ppt_" + timesuffix + ".pdf";
    		}else{
    			return null;
    		}
    
    		File htmlOutputFile = new File(toFilePath + File.separatorChar + htmFileName);
    		File docInputFile = new File(toFilePath + File.separatorChar + docFileName);
    		if (htmlOutputFile.exists())
    			htmlOutputFile.delete();
    		htmlOutputFile.createNewFile();
    		if (docInputFile.exists())
    			docInputFile.delete();
    		docInputFile.createNewFile();
    		/**
    		 * 由fromFileInputStream构建输入文件
    		 */
    		try {
    			OutputStream os = new FileOutputStream(docInputFile);
    			int bytesRead = 0;
    			byte[] buffer = new byte[1024 * 8];
    			while ((bytesRead = fromFileInputStream.read(buffer)) != -1) {
    				os.write(buffer, 0, bytesRead);
    			}
    
    			os.close();
    			fromFileInputStream.close();
    		} catch (IOException e) {
    		}
    
    		OpenOfficeConnection connection = new SocketOpenOfficeConnection(8100);
    		try {
    			connection.connect();
    		} catch (ConnectException e) {
    			System.err.println("文件转换出错,请检查OpenOffice服务是否启动。");
    		}
    		// convert
    		DocumentConverter converter = new OpenOfficeDocumentConverter(connection);
    		converter.convert(docInputFile, htmlOutputFile);
    		connection.disconnect();
    		// 转换完之后删除word文件
    		docInputFile.delete();
    		return htmFileName;
    	}
    	
    	public static void main(String[] args) throws IOException {
    		Doc2HtmlUtil coc2HtmlUtil = getDoc2HtmlUtilInstance();
    		File file = null;
    		FileInputStream fileInputStream = null;
    		
    		file = new File("D:/poi-test/exportExcel.xls");
    		fileInputStream = new FileInputStream(file);
    //		coc2HtmlUtil.file2Html(fileInputStream, "D:/poi-test/openOffice/xls","xls");
    		coc2HtmlUtil.file2pdf(fileInputStream, "D:/poi-test/openOffice/xls","xls");
    		
    		file = new File("D:/poi-test/test.doc");
    		fileInputStream = new FileInputStream(file);
    //		coc2HtmlUtil.file2Html(fileInputStream, "D:/poi-test/openOffice/doc","doc");
    		coc2HtmlUtil.file2pdf(fileInputStream, "D:/poi-test/openOffice/doc","doc");
    		
    		file = new File("D:/poi-test/周报模版.ppt");
    		fileInputStream = new FileInputStream(file);
    //		coc2HtmlUtil.file2Html(fileInputStream, "D:/poi-test/openOffice/ppt","ppt");
    		coc2HtmlUtil.file2pdf(fileInputStream, "D:/poi-test/openOffice/ppt","ppt");
    		
    		file = new File("D:/poi-test/test.docx");
    		fileInputStream = new FileInputStream(file);
    //		coc2HtmlUtil.file2Html(fileInputStream, "D:/poi-test/openOffice/docx","docx");
    		coc2HtmlUtil.file2pdf(fileInputStream, "D:/poi-test/openOffice/docx","docx");
    		
    	}
    
    }
    

    转换成html和转换成pdf的过程几乎一样,只是在创建输出的File时前者命名为XXX.html,后者命名为XXX.pdf,在执行converter.convert(docInputFile, htmlOutputFile);时,jodconverter会自己根据文件类型名转换成对应的文件。
    注意,main方法里别file2Html和file2pdf都调用,会报错的,要么转html,要么转pdf,只能选一个。还有就是在执行之前,需要启动openOffice的服务:在openOffice目录下的命令窗口中执行soffice -headless -accept=“socket,host=127.0.0.1,port=8100;urp;” -nofirststartwizard即可启动。
    以上需要引入jodconverter的jar包。

    展开全文
  • 附件在线预览控件实现的市场调研

    万次阅读 多人点赞 2019-07-31 18:40:08
    附件在线预览控件实现的市场调研

    #附件在线预览控件实现的市场调研
    注:此为博主(yjclsx)市场调研的原创文档,若要转载,请标明出处!
    ##一、POI实现
    使用poi组件(是java的jar包,因此.net不支持)可以将excel、word转换为html,将ppt转换为图片,这些都是可以直接被浏览器识别的文件类型,由此实现在线预览功能。
    原excel如下:
    原excel效果图
    原word如下:
    这里写图片描述
    原ppt如下:
    这里写图片描述
    效果展示如下:
    excel转html:
    这里写图片描述
    ppt转图片:
    这里写图片描述
    word转html:
    这里写图片描述
    可见,excel转成的页面格式不太好看,ppt转成图片后有些不是宋体的中文字会出现框框。
    ##二、OpenOffice实现
    ###2.1、转换为html或者pdf
    OpenOffice是免费的一套跨平台的办公室软件套件,有windows和linux版本。这里需要基于它的服务(需要启动openffice进程)利用jodconverter(java的jar包)把文件(.doc、.docx、.xls、.ppt)转换为html或者pdf。效果如下:
    word转pdf:
    这里写图片描述

    word转html:
    这里写图片描述

    excel转html:
    这里写图片描述
    excel转pdf:
    这里写图片描述
    ppt转html:
    这里写图片描述
    ppt转pdf:
    这里写图片描述
    使用openOffice效果比poi明显好,没有中文乱码等问题,使用openOffice转换成pdf比转换成html效果好,安装了Adobe Reader XI可以在浏览器直接打开pdf,达到预览的效果。
    ###2.2、Flash预览
    使用openOffice转换成pdf后,再通过swfTools将pdf文件转换成swf格式的文件,最后通过FlexPaper文档组件在页面上进行展示。百度文库和豆丁网都是使用flash的形式在网页上展示的,播放的时候,修改了flexpaper,让它支持一次仅读取指定页数的flash。
    word预览效果如下:
    这里写图片描述
    缺点:转换过程非常耗费资源,一个文件还需要一个PDF文件、一个SWF文件浪费磁盘空间。
    ##三、Office文档直接转换为SWF,通过网页加载Flash预览
    利用flashpaper直接转换为SWF文件,然后利用flexpaper预览Flash文件。
    flashpaper是Macromedia的一款产品,随着被Adobe公司收购,Macromedia对于这款软件已放弃了。
    ##四、office web apps
    Office Web Apps是由微软推出的基于Web端的在线办公工具,让你可以从几乎任何地方共享自己Office文档。后更名为Office Online,服务对应地更名为Word Online、Excel Online、PowerPoint Online和OneNote Online。钉钉、126邮箱的文件预览就是使用的Office Online。
    使用该方案的优点:
       1.现有代码改动量很小,几乎可以忽略不计,无需自己写代码。
       2.支持文档类型很全面,doc,ppt,xls,docx,pptx,xlsx,pdf。
       3.手机和pc都支持,支持文档缓存,分页浏览。
       4.免费。
    使用该方案的缺点:
       1.安装部署十分麻烦,相关文档也较少,不易上手。
       2.转换文档需要两台服务器,一台为转换server,另外一台为域控server。
       3.只运行在windows服务器上。
    excel预览效果如下:
    这里写图片描述
    ##五、付费软件
     Office Web 365在线预览云服务(http://www.officeweb365.com):优点是代码量几乎为0,缺点是文件都上传到了它的服务器上。
     永中office在线预览(http://dcs.yozosoft.com/index.html):QQ邮箱、163邮箱等都是使用的这款服务。
    运行环境:jre8、apache-tomcat-8.0.26、nginx以及转换所需的字体。
    部署流程(linux下):1、安装JDK8;2、Tomcat配置;3、部署DSC工程;4、安装nginx。
    java再使用时需引入第三方工具包:commons-logging-1.1.jar,httpclient-4.5.jar,httpcore-4.4.1.jar,httpmime-4.5.jar,详细调用方法和API请看官方的说明文档。
    excel效果预览如下:
    这里写图片描述
     科瀚的SOAOffice中间件(http://www.kehansoft.com/soaoffice/index.htm)。
     卓正软件的pageoffice控件(http://www.zhuozhengsoft.com/ ):
    支持的浏览器有:IE(Internet Explorer)6、IE7、IE8、IE9、IE0、搜狗、傲 游、MyIE、猎豹、百度、360、世界之窗、QQ浏览器;Chrome需要安 装ActiveX for Chrome插件、FireFox需要安装IETab插件;
    使用步骤:
       1、解压下载到的PageOffice软件包。
       2、拷贝示例文件夹到Tomcat的webapps文件夹下,重新启动Tomcat服务,通过浏览器访问示例页面即可。
       3、浏览包含PageOffice的页面会提示安装PageOffice客户端控件,点击允许。安装客户端控件后,控件会弹出注册对话框,填写软件包里附带的试用序列号即可注册激活软件。然后您就可以浏览PageOffice示例代码,查看各种功能效果了。
    市面上的其他付费软件服务还有,这里不再列举了!
    ##六、调研结论
      基于我司实际情况,得出以下结论:
      POI由于预览效果不是很好,不建议使用。
      Flashpaper缺少后续支持,不建议使用。
      第三方付费产品中,Office Web 365 完成依赖于第三方云服务,在安全性、灵活性、稳定性为验证,不建议使用;科瀚的SOAOffice和卓正软件的pageoffice需要浏览器Activex插件的支持,对用户不是很友好,不建议试用。
      剩下的OpenOffice、Office Web Apps、永中office中,OpenOffice的预览效果稍差,但集成方便;Office Web Apps预览效果最佳,钉钉、126等也采用此方式,但估计集成难度稍大,另外钉钉的预览偶尔也出现不稳定的情况;永中office的预览效果和集成难度比较平衡,但需付费。这三种方案还需要再做选择,希望大家提一些建议。

    注:此为博主(yjclsx)市场调研的原创文档,若要转载,请标明出处!

    展开全文
  • VSCode设置网页代码实时预览

    万次阅读 多人点赞 2018-10-14 21:39:32
    目录 一、设置描述 二、操作步骤 一、设置描述 1.VSCode作为一款很不错的开发软件,相比DW更小巧,用来...其实我们可以在VSCode中配置一个网页服务器,修改完代码之后只需要保存代码浏览器就可以实时预览 二、...

    目录

    一、设置描述

    二、操作步骤


    一、设置描述

        1.VSCode作为一款很不错的开发软件,相比DW更小巧,用来测试前端特别不错,那么我们平时开发网页发现只有写完代码,然后保存,接下来到浏览器中刷新查看效果,然后不停重复,我们发现很多时间就这样浪费到了这三个步骤上。

        2.其实我们可以在VSCode中配置一个网页服务器,修改完代码之后只需要保存代码浏览器就可以实时预览

    二、操作步骤

        1.打开VScode,点击坐标工具栏的最后一个进入插件安装

        2.如果没有显示左边的工具栏,也可以在View中找到Extensions进入插件安装

        3.在搜索框中输入Live Server,在搜索结果中找到如下,选择安装

        4.安装完成需要重启软件插件才能生效

        5.重启过之后,新建一个工作区(也可以直接拖一个文件夹到vscode中),在这里创建一个HTML文件做测试,注意单独新建一个HTML文件拖动到IDE中是使用不了Live Server的,需要把这个HTML文件放到创建的工作区(文件夹)中,新建完成后我们可以在状态栏上看到一个Go Live,单击会自动打开浏览器并显示

       提示:如果之前也有HTML项目,直接把项目根文件夹拖动到VScode中就会自动添加到工作区

        6.如果没有状态栏上,也可以在文件上单击右键,选择Open With Live Server这一项

        7.接下来修改代码我们只需要ctrl+S保存修改后的代码,浏览器自动刷新,动图显示

       8.遇到问题解决不了别忘了留言~~

    展开全文
  • 基于wps.js在线编辑、在线预览、在线转换前台vue / react 后台java,无需任何插件,零安装,可以直接配置完打包部署,也可直接集成项目中,或者二次开发,后续会不定期更新,有好的建议或者意见请留言。 请下载demo...
  • Vue - element-ui 中预览 word 、exce、ppt以及pdf文件

    万次阅读 多人点赞 2019-08-17 16:21:01
    最近写了个有 预览word 、Exce、ppt以及pdf文件 的后台 管理 在网上也找了 很多 就感觉很复杂 ,当然最后还是实现了 , 本博主一项喜欢简单 越简单越好 越好理解 废话不多说 先上效果图 (我就喜欢那种有图的代码 能...
  • JavaScript实现图片上传并预览并提交ajax(完整demo)

    万次阅读 多人点赞 2017-08-04 17:36:28
    图片上传并预览HTML<div class="file-box"> 预览"> ,imag
  • 分享一个关于相机镜像预览的实用方法: 在相机设置预览之前加上下面设置(下面的view就是你的SurfaceView或TextureView): 1、左右镜像预览; view.setScaleX(-1); 2、上下镜像预览: view.setScaleY(-1); 3...
  • 前端-在线预览pdf、word、xls、ppt等文件

    万次阅读 多人点赞 2018-05-17 16:58:06
    1、前端实现pdf文件在线预览功能 方式一: 通过a标签href属性实现 pdf文件理论上可以在浏览器直接打开预览但是需要打开新页面。在仅仅是预览pdf文件且UI要求不高的情况下可以直接通过a标签href属性实现预览 <...
  • JAVA实现文件预览功能

    万次阅读 热门讨论 2018-06-29 16:23:47
    近期做的项目要求实现文件在线预览功能,可支持多种文件类型,TXT,DOC,PDF,XLS , 最好支持压缩包的预览功能.没办法,只能网上找啊 . 看了个遍,都是些不靠谱的,转来转去的一个能用的都没有,付费的产品 有 什么永中啊,...
  • uniapp预览图片,预览图片列表并保存到手机 uniapp给我们提供很多现成的接口,这篇讲解一下图片预览接口 - uni.previewImage(OBJECT) 文章目录uniapp预览图片,预览图片列表并保存到手机OBJECT 参数说明...
  • vue项目中使用pdf.js预览pdf文件

    万次阅读 多人点赞 2018-05-02 20:44:06
    项目要求需要预览pdf文件,网上找了很久,大多数都是推荐pdf.js,自己先了解了一下,最后决定用pdf.js, 但是发现,在vue中使用这个很少!!!!!所以我就写这一篇帮助一下vue使用pdfjs的朋友! 其实 这和前端...
  • office在线预览 word在线预览 excel在线预览 文件浏览接口服务 支持移动端浏览,只要能使用浏览器上网都可以使用,不需要安装任何第三方工具。 1、word在线预览 excel在线预览,.net源代码,里面有上传word、excel...
  • HTML中在线预览word文档

    千次阅读 2019-04-25 16:04:12
    预览
  • PlayCamera_V1.0.0(SurfaceView预览Camera,拍照demo)

    千次下载 热门讨论 2014-06-23 19:26:18
    SurfaceView预览Camera,拍照demo),详见博客:http://blog.csdn.net/yanzi1225627/article/details/33028041
  • 在线预览pdf文件(pdfJS)

    万次阅读 2019-04-18 14:42:56
    在线预览pdf文件(pdfJS) 刚进公司实习第一天,组长就让我自己去实现在线展示PDF文件,看了看网上贴子也比较了一下pdfObiect(感兴趣的可以看看),最终决定用pdf.js来实现预览功能。 使用pdfjs目的是为了打开pdf...
  • 我用的jquery.print-preview.js插件,但是只能打印预览一张, 如果数据多的话,就预览两张,但是这个插件不能实现,求帮助
  • VSCode中预览markdown和修改预览样式

    万次阅读 2017-10-13 18:01:15
    一VSCode可以直接编辑markdown并且预览 二修改VSCode中markdown预览样式 三我不管我直接下载插件 四结束一、VSCode可以直接编辑markdown并且预览使用快捷键Ctrl+k然后按V健,或者点击右上角的打开侧边栏预览(在预览...
  • 在播放视频的时候,开启人脸识别,但是相机的预览窗口会遮挡视频播放 xml用RelativeLayout,视屏SurfaceView在JavaCameraView上面,还是会遮挡视频 在视频播放的时候设置JavaCameraView不可见的话获取不到帧数据 ...
  • 如何简单实现视频预览和图片预览

    千次阅读 2020-04-13 10:25:08
    工作需要做一个视频预览和图片预览,于是就发现了一个简单省事的预览方法,供大家参考一下,请多指教啊 $("#preview").click(function () { var file = $("#ResUrl").val();//获取我那件路径 if (file == null...
  • vue 文件预览组件_Vue的文件预览组件

    千次阅读 2020-07-29 09:32:41
    vue 文件预览组件 Vue文件预览 (vue-file-preview) A file preview component by Vue , maked up by serval previewer components. Vue的文件预览组件,由serval预览器组件组成。 View Documentation 查看文件 ...
  • mvc 4.0 中我使用了 input type file 标签 可以多选图片,我现在想选择完图片后 预览本地图片可以预览多个
  • 前端实现在线预览文档最近项目开发中需要实现在线预览Word,Excel,PowerPoint格式的文档,网上查找了很多资源,各说纷纭,但是在一一尝试之后只有使用微软的预览接口才能成功,其他的会出现各种各样的问题,现在说下...
  • 预览窗格无法预览文件It’s easy to preview files without opening them in Windows 10 thanks to the Preview Pane feature in File Explorer. You can see thumbnails of most images, videos, audio files, and ...
  • 本文基于 android camera2 实现视频预览,暂未兼容 camera1 API,基础实现可以参考 googlesample Camera2 例子 android-Camera2Basic ,本文以工具类形式实现一步调用。 谷歌例子中没有具体指明预览帧的获取,即 ...
  • 超详细的OpenOffice实现前端在线预览office文档记录 最近搞一个数字化共享平台,是一个java web项目,使用框架ssm,其中项目有一个需要在线预览PDF、excle、ppt、word文件的功能,也是各种谷歌百度,乱七八糟,要么...
  • 我在调用了CameraCaptureSession的setRepeatingRequest()实现预览后,想要停止预览,于是调用了stopRepeating()方法,这样做之后,预览确实停止了,可TextureView显示的是最后一刻的预览画面,我希望在停止预览后...
  • GOS预览

    千次阅读 2020-07-25 11:13:21
    以下为预览图: 场景图: 细节图: 主题商城 会员中心 应用商城 以上就是GOS主题预览,更多详情请购买后体验! ...
  • 之前公司有一个需求:在Android上实现视频预览,然后使用公司在移动端的物体识别函数实时识别预览中的图像,并实时框出识别出的物体。 需要解决的问题有: Android调用相机在自己的应用内实现视频预览:google自己...
  • openOffice在线预览

    万次阅读 2019-06-05 14:10:40
    1. 在windows或linux上安装openoffice 2. 去这个地址... 3.openoffice在linux上部署在线预览会出现乱码 解决方法: 3.1 下载字体包,链接: https://pan.baidu.com/s/1hiUskU0Ljr...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 98,162
精华内容 39,264
关键字:

预览