精华内容
参与话题
问答
  • 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.遇到问题解决不了别忘了留言~~

    展开全文
  • 在播放视频的时候,开启人脸识别,但是相机的预览窗口会遮挡视频播放 xml用RelativeLayout,视屏SurfaceView在JavaCameraView上面,还是会遮挡视频 在视频播放的时候设置JavaCameraView不可见的话获取不到帧数据 ...
  • 基于React+antd的后台管理模板(可预览

    万次阅读 多人点赞 2018-08-05 13:42:53
    自己利用业余时间,基于React+antd写了一个后台管理模板。主要是熟悉antd组件和React,页面主要还是展示页面,不涉及后台交互。 特点: 我用
  • 使用surfaceview预览camera,在预览时看到 图像比较暗:![图片1图片说明](https://img-ask.csdn.net/upload/201704/25/1493107363_549995.png) ![图片2图片说明]...
  • 使用surfaceview预览camera,预览的图像有时会模糊,拍出来的照片也是模糊的。此时如果重启一下设备,在打开应用,点击拍照,问题会得到暂时性的解决。但是不知道什么时候它又会模糊。![模糊的图片]...
  • 我想使用flexpaper+asp.net在线预览pdf。 如果一个pdf文档,上传,使用swftools直接转换为swf,可以使用flexpaper在线预览。 如果是doc或者docx,我使用Microsoft.Office.Interop.Word先转换为PDF,然后使用...
  • 2、关于预览图像与拍照成片不一致的问题,我测试发现手边长宽比16:9的手机预览与成是一样的,所以在截取区域等处理上是可能的。但是依然在我的 note8 上,成片会比预览拍出更广的范围。比如我拍一本书,结果成片会...
  • PlayCamera_V1.0.0(SurfaceView预览Camera,拍照demo)

    千次下载 热门讨论 2014-06-23 19:26:18
    SurfaceView预览Camera,拍照demo),详见博客:http://blog.csdn.net/yanzi1225627/article/details/33028041
  • 问一下,我做了一个摄像头程序,继承了一个SurfaceView做预览,但用addView(mPreview)将预览添加到FrameLayout时, 报错说Unable to start activity ComponentInfo{...
  • 最近尝试使用QT 的打印预览功能: 部分代码如下: def printHtml(self, printer): html = """<html> <head></head> <h1>55555</h1><b>bold <h1>55555</h1><b>bold <h1>55555</h1><b>bold <h1>55555</h1><b>...
  • 前端-在线预览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 , 最好支持压缩包的预览功能.没办法,只能网上找啊 . 看了个遍,都是些不靠谱的,转来转去的一个能用的都没有,付费的产品 有 什么永中啊,...
  • 分享一个关于相机镜像预览的实用方法: 在相机设置预览之前加上下面设置(下面的view就是你的SurfaceView或TextureView): 1、左右镜像预览; view.setScaleX(-1); 2、上下镜像预览: view.setScaleY(-1); 3...
  • android studio无法预览

    2015-09-03 09:40:27
    求如何成功预览! PS:昨天还是正常的,后来我更新了sdk,今天就不行了。 这是提示更新里的细节,不明白是什么意思: ![图片说明](https://img-ask.csdn.net/upload/201509/03/1441273199_446523.jpg)
  • 预览方法如下: enter code here function previewImage(file,callback){//file为plupload事件监听函数参数中的file对象,callback为预览图片准备完成的回调函数 if(!file || !/image\//.test(file.type)) ...
  • vue项目中使用pdf.js预览pdf文件

    万次阅读 多人点赞 2018-05-02 20:44:06
    项目要求需要预览pdf文件,网上找了很久,大多数都是推荐pdf.js,自己先了解了一下,最后决定用pdf.js, 但是发现,在vue中使用这个很少!!!!!所以我就写这一篇帮助一下vue使用pdfjs的朋友! 其实 这和前端...
  • vs code编辑markdown 实时预览

    万次阅读 2018-07-11 16:00:53
    方法很简单, 1、新建一个 readme.md 文件 ,用vs code打开 2、按 F1 输入 markdown 选择下图的选项即可
  • 我用的jquery.print-preview.js插件,但是只能打印预览一张, 如果数据多的话,就预览两张,但是这个插件不能实现,求帮助
  • windows 11 预览版来了

    万次阅读 2020-02-01 18:00:23
    Windows 11 或将在今年呈现,Windows 7 可能将成为历史,前不久还分享过一篇文章《Win 7 退役》。‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧END‧‧‧‧‧‧‧‧‧‧‧...
  • js前端实现多图图片上传预览的两个方法

    万次阅读 多人点赞 2016-06-20 15:36:16
    一、将图片转成icon码的实现方式 html代码: ;float: left;" id="st18" name="evidence" onchange="previewImage(this,5)" type="file"/>
  • 这样在谷歌、火狐下可以预览pdf,IE下就遇到下载框弹出,不是想要的网页预览效果。 查阅资料发现了 http://www.cnblogs.com/brucejia/archive/2012/12/24/2831060.html这个帖子,里面发现这样一句话【Content-...
  • mvc 4.0 中我使用了 input type file 标签 可以多选图片,我现在想选择完图片后 预览本地图片可以预览多个
  • QSS 编辑预览工具

    万次阅读 热门讨论 2017-01-22 13:51:22
    Qt Creator 对于 QSS 的支持的不是很好,没有语法提示、智能纠错、实时预览等功能,这在一定程度上明显降低了开发效率。。。 下面,介绍几款 QSS 编辑工具,用于辅助基本开发。
  • [图片说明](https://img-ask.csdn.net/upload/201809/30/1538293230_972925.jpg)Web项目使用 Pdf.js类库实现在线预览PDF,点击 在线预览,出现“意外的服务器响应” ![图片说明]...
  • JS实现导入文件功能 赠人玫瑰,手留余香。若您感觉此篇博文对您有用,请花费2秒时间点个赞,您的鼓励是我不断前进的动力,共勉!(PS:此篇博文是自己在午饭时间所写,为此没吃午饭,这就是程序猿的生活。...
  • **因为有个项目客户需要在线预览TIF格式的图片,而且这个TIF图片一张里面有2页,我要用C#编写相关代码我用**.tif">这样根本就显示不出来,然后去网上找插件,找了一个tif的插件还需要手动安装 ,安装完后,发现页面...
  • 微信小程序开发交流qq群 581478349 ...1.多张图片循环渲染后预览、保存、识别带参数二维码 <view wx:for="{{imgalist}}" class="previewimg"> <image src="{{item}}" data-src="{{item}}...

空空如也

1 2 3 4 5 ... 20
收藏数 81,685
精华内容 32,674
关键字:

预览