精华内容
下载资源
问答
  • Javahtml转成word

    万次阅读 2016-06-03 11:04:48
    Javahtml转成word

    一、常用的html转word

      1、工具:word2html、pdf转成word转换器等

      2、Java代码:jacob和poi

    </pre><p></p><p></p><p>二、jacob把html转换成word</p><p><span style="margin:0px; padding:0px; color:rgb(57,57,57); font-family:verdana,'ms song',Arial,Helvetica,sans-serif; font-size:14px; line-height:21px"><span style="margin:0px; padding:0px"><span style="margin:0px; padding:0px">Jacob只能用于windows系统,如果你的系统不是windows,建议使用Openoffice.org,这个是跨平台的</span></span></span></p><p></p><p><pre name="code" class="java">/*************  
    * JACOB方式  
    * notes:需要将jacob.dll拷贝到windows/system32和classpath路径下  
    * @param html html静态页面路径  
    * @param wordFile 要生成的word文档路径  
    */ 
    public static void htmlToWord(String html, String wordFile) {     
    	ActiveXComponent app = new ActiveXComponent("Word.Application"); // 启动word        
    	try {            
    		app.setProperty("Visible", new Variant(false));            
    		Dispatch wordDoc = app.getProperty("Documents").toDispatch();      
    		wordDoc = Dispatch.invoke(wordDoc, "Add", Dispatch.Method, new Object[0], new int[1]).toDispatch();  
    		Dispatch.invoke(app.getProperty("Selection").toDispatch(), "InsertFile", Dispatch.Method, new Object[] { html, "", new Variant(false), new Variant(false), new Variant(false) }, new int[3]);     
    		Dispatch.invoke(wordDoc, "SaveAs", Dispatch.Method, new Object[] {wordFile, new Variant(1)}, new int[1]);      
    		Dispatch.call(wordDoc, "Close", new Variant(false));       
    	} catch (Exception e) {     
    		e.printStackTrace();     
    	} finally {          
    		app.invoke("Quit", new Variant[] {});    
    	} 
    }



     
    

    三、poi把html转换成word

    public void htmlToWord2() throws Exception {
    	InputStream bodyIs = new FileInputStream("f:\\1.html");
    	InputStream cssIs = new FileInputStream("f:\\1.css");
    	String body = this.getContent(bodyIs);
    	String css = this.getContent(cssIs);
    	//拼一个标准的HTML格式文档
    	String content = "<html><head><style>" + css + "</style></head><body>" + body + "</body></html>";
    	InputStream is = new ByteArrayInputStream(content.getBytes("GBK"));
    	OutputStream os = new FileOutputStream("f:\\1.doc");
    	this.inputStreamToWord(is, os);
    }
          
    /**
    * 把is写入到对应的word输出流os中
    * 不考虑异常的捕获,直接抛出
    * @param is
    * @param os
    * @throws IOException
    */
    private void inputStreamToWord(InputStream is, OutputStream os) throws IOException {
    	POIFSFileSystem fs = new POIFSFileSystem();
    	//对应于org.apache.poi.hdf.extractor.WordDocument
    	fs.createDocument(is, "WordDocument");
    	fs.writeFilesystem(os);
    	os.close();
    	is.close();
    }
          
    /**
    * 把输入流里面的内容以UTF-8编码当文本取出。
    * 不考虑异常,直接抛出
    * @param ises
    * @return
    * @throws IOException
    */
    private String getContent(InputStream... ises) throws IOException {
    	if (ises != null) {
    		StringBuilder result = new StringBuilder();
    		BufferedReader br;
    		String line;
    		for (InputStream is : ises) {
    			br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
    			while ((line=br.readLine()) != null) {
    				result.append(line);
    			}
    		}
    		return result.toString();
    	}
    	return null;
    }




    展开全文
  • 实现思路将word转换成html,已经实现,由于利用poi转成html标准html转pdf过程中出现 ERROR: '元素类型 "meta" 必须由匹配的结束标记 "</meta>" 终止。' org.xhtmlrenderer.util.XRRuntimeException: Can't ...
  • 2019独角兽企业重金招聘Python工程师标准>>> ...

    首先贴个好东西,一个方案文档,这是我已经实现过两种方案后才看到的一片文章,先行参考先整体思路。

    http://www.officeweb365.com/officetoview.html

    先说下我的项目需求:

    用户上传文件(页面限制格式pdf/doc/docx) -> 点击文件名 -> 在线预览已传文件。

    需求比较简单,我的想法是:pdf可以直接打开预览所以这个可以不用考虑,doc/docx的话需要作格式转换,在线预览将其转成pdf或者html/htm页面的方式。doc是97-2003文档,普遍解决方案都有,实现不难,重点是docx,由于是07的文档,在兼容性方面比较困难,后面具体的实现过程会提到。

    历程:由于在先前在项目中已经使用POI实现了文档的导出功能,所以我在做时候先用POI尝试实现功能,后面发现POI在07的兼容性方面并不好(这里也有一个就是我用来做demo的文档选得不好,效果欠佳),特别是转换成html文件时会存在字体格式乱码的问题,可以用微软雅黑试试就知道了。故弃用选择Openoffice,发现Openoffice在Windows上的实现真的挺复杂,可以看看这个博主的内容就知道 http://blog.csdn.net/lbf5210/article/details/50519190 ,我的服务器是Linux,所以这种方式复杂了,为了更便捷,我觉得使用直接转成pdf/html/htm即可,然后根据路径预览,不使用上面博主的那种页面插件,可以省去很多麻烦。

    下面是两种方式分别实现的方式,各有优缺。

    POI实现:https://my.oschina.net/u/2428684/blog/842930

    Openoffice实现:https://my.oschina.net/u/2428684/blog/842947

    转载于:https://my.oschina.net/u/2428684/blog/842863

    展开全文
  • java poi- 实现 word Excel pdf ppt HTML

    千次阅读 2017-11-13 15:03:16
    poi jar 实现word Excel pdf ppt 转换 HTML 相对来说比较实用。
    所需要 jar
    poi-3.17.jar
    poi-examples-3.17.jar
    poi-excelant-3.17.jar
    poi-ooxml-3.17.jar
    poi-ooxml-schemas-3.15.0.jar
    dom4j-1.6.1.jar
    poi-scratchpad-3.17.jar
    xmlbeans-2.6.0.jar
    
    
    方法 传参:
    /**
    * filetype 文件类型
    *
    *ctxPath 路径 filelocalname 所要生成HTML的名称
    * zid  是me 自定义的一个id
    */
    
    
    if("DOC".equals(filetype)){
    FileUtil.folderfilehtml(ctxPath + filelocalname, zid, ctxPath);
    }else if("XLS".equals(filetype)||"XLSX".equals(filetype)){
    FileUtil.folderfileExceltohtml(ctxPath + filelocalname, zid, ctxPath);
    }else if("PDF".equals(filetype)){
    FileUtil.pdf2html("D:\\application\\pdf2htmlEX-v1.0\\pdf2htmlEX.exe",ctxPath + filelocalname,application.getRealPath("/")+DOWNLOADPATH.get("folderpdf"),zid+".html");
    }else if("PPT".equals(filetype)){
    FileUtil.pptToHtml(ctxPath + filelocalname, zid, ctxPath,webpath);
    }
    
    
    //所调用的方法
    /**
     * word 转换 HTML
     * 
    */
    	public static void folderfilehtml(String filename,String htmlid,String ctxPath) throws IOException, ParserConfigurationException, TransformerException{
    		InputStream input = new FileInputStream(filename);
    	    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(ctxPath
    	         + 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, "GB2312");
    	    serializer.setOutputProperty(OutputKeys.INDENT, "yes");
    	    serializer.setOutputProperty(OutputKeys.METHOD, "html");
    	    serializer.transform(domSource, streamResult);
    	    outStream.close();
    	    String content = new String(outStream.toByteArray());
    	    String conut =content.substring(0,content.lastIndexOf("</head>"));
    	    String countend=content.substring(content.indexOf("</head>")-1,content.length()); 
    	    conut+="<input type="+"button"+" value="+"打印"+" href="+"javascript:void(0);"+" οnclick="+"window.print();"+"  class="+"noprint"+" style="+"height:30px;width: 60px; padding-right:5px;align:right;float:left;FONT-WEIGHT: bold;FONT-SIZE: 12pt;COLOR: #000000;FONT-FAMILY: Arial"+">";
    	    content=conut+countend;
    	    FileUtils.writeStringToFile(new File(ctxPath, htmlid+".html"), content);
    	}
    	/**
    	 * Excel 转换 HTML
    	 * 
    	 */
    	public static void folderfileExceltohtml(String filename,String htmlid,String ctxPath) throws IOException, ParserConfigurationException, TransformerException{
    		InputStream input=new FileInputStream(filename);
    	     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 (ctxPath + 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, "GB2312");
    	     serializer.setOutputProperty (OutputKeys.INDENT, "yes");
    	     serializer.setOutputProperty (OutputKeys.METHOD, "html");
    	     serializer.transform (domSource, streamResult);
    	     outStream.close();
    
    	     String content = new String (outStream.toByteArray() );
    	     String conut =content.substring(0,content.lastIndexOf("</head>"));
    	     String countend=content.substring(content.indexOf("</head>")-1,content.length()); 
    	     conut+="<input type="+"button"+" value="+"打印"+" href="+"javascript:void(0);"+" οnclick="+"window.print();"+"  class="+"noprint"+" style="+"height:30px;width: 60px; padding-right:5px;align:right;float:left;FONT-WEIGHT: bold;FONT-SIZE: 12pt;COLOR: #000000;FONT-FAMILY: Arial"+">";
    	     content=conut+countend;
    	     FileUtils.writeStringToFile(new File (ctxPath, htmlid+".html"), content);
    	}
    	
    	/**
    	 * PDF 转 HTML
    	 */
    	
    	/** 
         * 把输入流里面的内容以UTF-8编码当文本取出。 
         * 不考虑异常,直接抛出 
         * @param ises 
         * @return 
         * @throws IOException 
         */  
    	/**
         * 调用pdf2htmlEX将pdf文件转换为html文件
         * 
         * @param exeFilePath
         *            pdf2htmlEX.exe文件路径
         * @param pdfFile
         *            pdf文件绝对路径
         * @param [destDir] 生成的html文件存放路径
         * @param htmlName
         *            生成的html文件名称
         * @return
         */
        public static boolean pdf2html(String exeFilePath, String pdfFile,
                String destDir, String htmlFileName) {
            if (!(exeFilePath != null && !"".equals(exeFilePath) && pdfFile != null
                    && !"".equals(pdfFile) && htmlFileName != null && !""
                        .equals(htmlFileName))) {
                System.out.println("传递的参数有误!");
                return false;
            }
            Runtime rt = Runtime.getRuntime();
            StringBuilder command = new StringBuilder();
            command.append(exeFilePath).append(" ");
            if (destDir != null && !"".equals(destDir.trim()))// 生成文件存放位置,需要替换文件路径中的空格
                command.append("--dest-dir ").append(destDir.replace(" ", "\" \""))
                        .append(" ");
            command.append("--optimize-text 1 ");// 尽量减少用于文本的HTML元素的数目 (default: 0)
            command.append("--zoom 1.4 ");
            command.append("--process-outline 0 ");// html中显示链接:0——false,1——true
            command.append("--font-format woff ");// 嵌入html中的字体后缀(default ttf)
                                                    // ttf,otf,woff,svg
            command.append(pdfFile.replace(" ", "\" \"")).append(" ");// 需要替换文件路径中的空格
            if (htmlFileName != null && !"".equals(htmlFileName.trim())) {
                command.append(htmlFileName);
                if (htmlFileName.indexOf(".html") == -1)
                    command.append(".html");
            }
            try {
                Process p = rt.exec(command.toString());
                StreamGobbler errorGobbler = new StreamGobbler(p.getErrorStream(),
                        "ERROR");
                // 开启屏幕标准错误流
                errorGobbler.start();
                StreamGobbler outGobbler = new StreamGobbler(p.getInputStream(),
                        "STDOUT");
                // 开启屏幕标准输出流
                outGobbler.start();
                int w = p.waitFor();
                int v = p.exitValue();
                if (w == 0 && v == 0) {
                    return true;
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return false;
        }
    
        public static boolean pdf2html_linux(String pdfFile, String destDir,
                String htmlFileName) {
            if (!(pdfFile != null && !"".equals(pdfFile) && htmlFileName != null && !""
                    .equals(htmlFileName))) {
                System.out.println("传递的参数有误!");
                return false;
            }
            Runtime rt = Runtime.getRuntime();
            StringBuilder command = new StringBuilder();
            command.append("pdf2htmlEX").append(" ");
            if (destDir != null && !"".equals(destDir.trim()))// 生成文件存放位置,需要替换文件路径中的空格
                command.append("--dest-dir ").append(destDir.replace(" ", "\" \""))
                        .append(" ");
            command.append("--optimize-text 1 ");// 尽量减少用于文本的HTML元素的数目 (default: 0)
            command.append("--process-outline 0 ");// html中显示链接:0——false,1——true
            command.append("--font-format woff ");// 嵌入html中的字体后缀(default ttf)
                                                    // ttf,otf,woff,svg
            command.append(pdfFile.replace(" ", "\" \"")).append(" ");// 需要替换文件路径中的空格
            if (htmlFileName != null && !"".equals(htmlFileName.trim())) {
                command.append(htmlFileName);
                if (htmlFileName.indexOf(".html") == -1)
                    command.append(".html");
            }
            try {
                Process p = rt.exec(command.toString());
                StreamGobbler errorGobbler = new StreamGobbler(p.getErrorStream(),
                        "ERROR");
                // 开启屏幕标准错误流
                errorGobbler.start();
                StreamGobbler outGobbler = new StreamGobbler(p.getInputStream(),
                        "STDOUT");
                // 开启屏幕标准输出流
                outGobbler.start();
                int w = p.waitFor();
                int v = p.exitValue();
                if (w == 0 && v == 0) {
                    return true;
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return false;
        }
        /**
         * PPT 转 HTML
         * @param path
         * @param filename
         * @return
         */
        public static void pptToHtml(String sourcePath,String id, String targetDir,String webpath) {
    		File pptFile = new File(sourcePath);
    		if (pptFile.exists()) {
    			try {
    				String type = com.util.FileUtils.GetFileExt(sourcePath);
    				if ("ppt".equals(type)) {
    					String htmlStr = toImage2003(sourcePath, targetDir,id,webpath);
    					com.util.FileUtils.writeFile(htmlStr, targetDir + "\\"+id+".html");
    				} else if ("pptx".equals(type)) {
    					String htmlStr = toImage2007(sourcePath, targetDir, id,webpath);
    					com.util.FileUtils.writeFile(htmlStr, targetDir + "\\"+id+".html");
    				} else {
    					System.out.println("the file is not a ppt");
    				}
    
    			} catch (Exception e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    		} else {
    			System.out.println("file does not exist!");
    		}
    
    	}
        
        public static String toImage2007(String sourcePath, String targetDir, String pptFileName,String webpath) throws Exception {
    		String htmlStr = "";
    		FileInputStream is = new FileInputStream(sourcePath);
    		XMLSlideShow ppt = new XMLSlideShow(is);
    		is.close();
    		com.util.FileUtils.createDir(targetDir);// create html dir
    		Dimension pgsize = ppt.getPageSize();
    		System.out.println(pgsize.width + "--" + pgsize.height);
    
    		StringBuffer sb = new StringBuffer();
    		for (int i = 0; i < ppt.getSlides().size(); i++) {
    			try {
    				// 防止中文乱码
    				for (XSLFShape shape : ppt.getSlides().get(i).getShapes()) {
    					if (shape instanceof XSLFTextShape) {
    						XSLFTextShape tsh = (XSLFTextShape) shape;
    						for (XSLFTextParagraph p : tsh) {
    							for (XSLFTextRun r : p) {
    								r.setFontFamily("宋体");
    							}
    						}
    					}
    				}
    				BufferedImage img = new BufferedImage(pgsize.width, pgsize.height, BufferedImage.TYPE_INT_RGB);
    				Graphics2D graphics = img.createGraphics();
    				// clear the drawing area
    				graphics.setPaint(Color.white);
    				graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width, pgsize.height));
    				// render
    				ppt.getSlides().get(i).draw(graphics);
    				// save the output
    				String imageDir = targetDir + pptFileName + "\\";
    				com.util.FileUtils.createDir(imageDir);// create image dir
    				String imagePath = imageDir + pptFileName + "-" + (i + 1) + ".png";
    				String imagewebpath = webpath+pptFileName+"\\"+ pptFileName + "-" + (i + 1) + ".png";
    				sb.append("<html>");
    				sb.append("<body>");
    				sb.append("<input type="+"button"+" value="+"打印"+" href="+"javascript:void(0);"+" οnclick="+"window.print();"+"  class="+"noprint"+" style="+"height:30px;width: 60px; padding-right:5px;align:right;float:left;FONT-WEIGHT: bold;FONT-SIZE: 12pt;COLOR: #000000;FONT-FAMILY: Arial"+">");
    				sb.append("<br />");
    				sb.append("<p style=text-align:center;>");
    				sb.append("<img src=" + "\"" + imagewebpath + "\"" + "/>");
    				sb.append("</p>");
    				sb.append("<br />");
    				sb.append("</html>");
    				sb.append("</body>");
    				FileOutputStream out = new FileOutputStream(imagePath);
    				javax.imageio.ImageIO.write(img, "png", out);
    				out.close();
    			} catch (Exception e) {
    				System.out.println("第" + i + "张ppt转换出错");
    			}
    		}
    		System.out.println("success");
    		htmlStr = sb.toString();
    
    		return htmlStr;
    	}
    
    
    public static String toImage2003(String sourcePath, String targetDir, String pptFileName,String webpath) {
    		String htmlStr = "";
    		try {
    			HSLFSlideShow ppt = new HSLFSlideShow(new HSLFSlideShowImpl(sourcePath));
    			com.util.FileUtils.createDir(targetDir);// create html dir
    			Dimension pgsize = ppt.getPageSize();
    			StringBuffer sb = new StringBuffer();
    			for (int i = 0; i < ppt.getSlides().size(); i++) {
    				// 防止中文乱码
    				for (HSLFShape shape : ppt.getSlides().get(i).getShapes()) {
    					if (shape instanceof HSLFTextShape) {
    						HSLFTextShape tsh = (HSLFTextShape) shape;
    						for (HSLFTextParagraph p : tsh) {
    							for (HSLFTextRun r : p) {
    								r.setFontFamily("宋体");
    							}
    						}
    					}
    				}
    				BufferedImage img = new BufferedImage(pgsize.width, pgsize.height, BufferedImage.TYPE_INT_RGB);
    				Graphics2D graphics = img.createGraphics();
    				// clear the drawing area
    				graphics.setPaint(Color.white);
    				graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width, pgsize.height));
    				// render
    				ppt.getSlides().get(i).draw(graphics);
    				String imageDir = targetDir + pptFileName + "\\";
    				com.util.FileUtils.createDir(imageDir);// create image dir
    				String imagePath = imageDir + pptFileName + "-" + (i + 1) + ".png";
    				String imagewebpath = webpath +pptFileName+"\\"+ pptFileName + "-" + (i + 1) + ".png";
    				sb.append("<html>");
    				sb.append("<body>");
    				sb.append("<input type="+"button"+" value="+"打印"+" href="+"javascript:void(0);"+" οnclick="+"window.print();"+"  class="+"noprint"+" style="+"height:30px;width: 60px; padding-right:5px;align:right;float:left;FONT-WEIGHT: bold;FONT-SIZE: 12pt;COLOR: #000000;FONT-FAMILY: Arial"+">");
    				sb.append("<br />");
    				sb.append("<p style=text-align:center;>");
    				sb.append("<img src=" + "\"" + imagewebpath + "\"" + "/>");
    				sb.append("</p>");
    				sb.append("<br />");
    				sb.append("</html>");
    				sb.append("</body>");
    				FileOutputStream out = new FileOutputStream(imagePath);
    				javax.imageio.ImageIO.write(img, "png", out);
    				out.close();
    			}
    			System.out.println("success");
    			htmlStr = sb.toString();
    		} catch (Exception e) {
    
    		}
    		return htmlStr;
    	}
    
    

    展开全文
  • Java语言实现word转PDF(10分钟解决)

    万次阅读 2018-09-20 16:28:39
    基本上涉及到Java操作office的时候就会想到POI和openoffice.这两种方案都是需要找各种jar包,然后用里面繁杂的api。关键是做出来的文件格式有各种各样的问题,有时生成的文件打不开,有时文档格式混乱。搞了好几天的...

    前言:

    经常做OA办公项目的同学一定和我一样被各种线上的office操作整疯了。基本上涉及到Java操作office的时候就会想到POI和openoffice.这两种方案都是需要找各种jar包,然后用里面繁杂的api。关键是做出来的文件格式有各种各样的问题,有时生成的文件打不开,有时文档格式混乱。搞了好几天的需求终于实现了,最后看到效果那一刻。。。唉呀妈呀 脑瓜疼 脑瓜疼

    此时就需要另辟新径了,得找个更专业的解决线上office操作的插件——pageoffice。虽然pageoffice官网提供了大量功能,但是通过这篇博客可以让同学们省去学习时间,让你10分钟实现word转PDF的功能。并且最重要的是本篇博客后面会提供破解注册码

    先看效果

    点击另存为PDF按钮就会开始转PDF(如果不想点击按钮也可以放在其他事件中自动转PDF)

    然后查看转换的PDF文件,格式是非常标准的,和本地word转出来的一模一样

    部署步骤(只需5步

    1.官网http://www.zhuozhengsoft.com/dowm/下载集成文件,引入jar包,配置web.xml

    去刚才下载的集成文件中找到lib,将里面的内容放在项目web-inf的lib中引入jar包,然后将web.xml的pageoffice配置引入到自己项目的wb.xml中

    2.在父页面aaa.jsp(需要打开文档的页面)放一个a标签或者button

    写a标签之前先引入pageoffice需要的js文件

    <script type="text/javascript" src="/jquery.min.js"></script>
    <script type="text/javascript" src="/pageoffice.js" id="po_js_main"></script>

    然后添加a标签

    <a href="javascript:POBrowser.openWindowModeless('word.jsp', 'width=1050px;height=900px;','id=er');">打开word文档</a>

    3.在父页面同级目录下创建一个word.jsp文件

    <%@ page language="java"
             import="java.util.*, com.zhuozhengsoft.pageoffice.*"
             pageEncoding="utf-8"%>
    <%
        PageOfficeCtrl pocCtrl=new PageOfficeCtrl(request);
    //设置服务器页面
        pocCtrl.setServerPage(request.getContextPath()+"/poserver.zz");
    //添加自定义按钮
        pocCtrl.addCustomToolButton("保存", "Save()", 1);
        pocCtrl.addCustomToolButton("另存为PDF文件", "SaveAsPDF()", 1);
    //设置保存页面
        pocCtrl.setSaveFilePage("SaveFile.jsp");
        String fileName = "template.docx";
        String pdfName = fileName.substring(0, fileName.length() - 4) + ".pdf";
    //打开文件
        pocCtrl.webOpen(fileName, OpenModeType.docNormalEdit, "张佚名");
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
        <title>Word文件转换成PDF格式</title>
        <script type="text/javascript">
            //保存
            function Save() {
                document.getElementById("PageOfficeCtrl1").WebSave();
            }
    
            //另存为PDF文件
            function SaveAsPDF() {
                document.getElementById("PageOfficeCtrl1").WebSaveAsPDF();
                document.getElementById("PageOfficeCtrl1").Alert("PDF文件已经保存到template.doc同级目录下。");
                <%--document.getElementById("div1").innerHTML = "<a href='OpenPDF.jsp?fileName=<%=pdfName %>'> 查看另存的 pdf 文件<a><br><br>";--%>
                document.getElementById("div1").innerHTML = "<a href='template.pdf'> 查看另存的 pdf 文件<a><br><br>";
            }
        </script>
    
    </head>
    <body>
    <form id="form1">
        <div id="div1"></div>
        <div style="width: auto; height: 700px;">
            <%=pocCtrl.getHtmlCode("PageOfficeCtrl1")%>
        </div>
    </form>
    </body>
    </html>
    
    

    4.在父页面同级目录下创建一个SaveFile.jsp文件 

    <%@ page language="java"
             import="java.util.*,com.zhuozhengsoft.pageoffice.*"
             pageEncoding="utf-8"%>
    <%
        FileSaver fs = new FileSaver(request, response);
        //保存文件到本地磁盘
        fs.saveToFile(request.getSession().getServletContext().getRealPath(fs.getFileName()));
        fs.close();
    
    %>
    
    

    5.新建一个名为template.docx的word文件(如果新建的是doc文件就将第三步的String fileName = "template.docx"代码改为String fileName = "template.doc";)放在父页面同级目录下.然后启动项目直接访问aaa.jsp点击链接.此时会提示安装插件,点击安装成功后提示注册,填写相关信息,填写注册码CA1XB-MF7Y-12ST-PSBP2就可以打开文档.

      注意:这些只是演示级代码,大家可以去pageoffice官网下载示例代码直接将samples4文件夹扔到Tomcat的webapps下,启动Tomcat,浏览器访问http://localhost:8080/Samples4/index.html,查看示例中的下面一个链接,直接看samples4文件夹下SaveAsPDF文件夹里面的代码.

     

    如有侵权,请联系小编

     

    展开全文
  • java html转Word功能

    千次阅读 2014-07-23 16:38:45
    前段时间在做html生成word功能,找了好几种方案,有的用jacob,但是这个比较麻烦,又是dll又是jar的,依赖太多了,而且代码量比较多,所有以采用了freemarker来生成word,制作一个模板就可以生成word文档了,生成的...
  • 已有的实现方式:采用标准的jsp模板输出实现,简单地说,就是把数据渲染进jsp页面,然后将此页面另存为doc文档,从而达到word导出效果。但是存在以下几个问题: (1) 由于导出的html网页格式,打开w...
  •  第一步:使用 poi 将word转换 html,这里代码一搜一堆没什么好说的前篇一律。  (值得注意的地方是IText 根据html生成文件的是否会验证html文件是否标准,例如通过poi转换的出来的html文件的一些标签会缺少标签...
  • 利用poi实现word转换html

    万次阅读 热门讨论 2017-12-04 10:50:49
    利用POI将word转换成html实现在线阅读 转载 2015年11月03日 10:22:04 ...通过网上找资料,发现用java实现word在线阅读有以下的实现方式: 1 Word=>PDF(OpenOffice+JodConverter)=
  • 利用POI将word转换成html实现在线阅读

    万次阅读 热门讨论 2013-12-26 16:05:18
    利用POI将word转换成html实现在线阅读
  • java html转换为word文档

    2013-07-25 17:38:43
    DocumentEntry documentEntry = directory.createDocument("WordDocument", bais); FileOutputStream ostream = new FileOutputStream(path+ fileName); poifs.writeFilesystem(ostream); bais.close(); ...
  • 本文参考文章如下 在这里插入代码片 javapdf(html转为pdf),解决中文乱码,标签不规范等问题 ...java实现html转pdf,支持中文,css以及中文换行 java项目实现htmlpdf的需求(支持中文和CSS样...
  • java html内容生成word文件实现代码

    千次阅读 2015-07-13 14:43:31
    处理HTML标签我用的是Jsoup组件,生成word文档这方面我用的是Jacob组件。有兴趣的朋友可以去Google搜索一下这两个组件。大致思路如下: 先利用jsoup将得到的html代码“标准化”(Jsoup.parse(String html))...
  • Java实现office文件转换为PDF。研究了一下主要有以下几种方式: 1.使用openoffice,这个可以再linux系统中使用。但是这个据说对于样式复杂的office文件,转换的效果并不好。(但是linux下仍然推荐使用这个) 2....
  • (二)、JAVA基于OPENXML的word文档插入、合并、替换操作系列之html转word、互富文本转word文档准备待转换内容内容清理与格式化转换成word文档输出结果展示附加内容、常见错误 富文本转word文档 我们经常会遇到在...
  • 前一阵项目有office系列文件在线预览需求,所以查询了一些资料,参考其他一些博客,实现了通过POI将excle转化为html,后来需求被砍掉,没有继续深入研究,这里将查询到的一些资料做一个记录. 首先实现office系列文件在线...
  • java实现导出word功能(包含图片)一

    万次阅读 2014-09-28 18:09:44
     网上我看了好多关于导出word文档的方法,最常见的有poi(应该能实现,没去尝试)、java-jacob(jacob需要调用本地的dll,而且在linux上市不能用的,只能在windows平台下运行)、itext生成rtf(不清楚)、freemark...
  • POI 实现wordhtml

    千次阅读 2017-06-07 14:59:56
    POI转HTML(仅针对doc): package com.vito.demo.test; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundExc
  • java实现doc互docx

    万次阅读 热门讨论 2019-11-22 20:29:57
    jacod使用原因引入 ...电脑内java是1.8版本,对应jacod刚好是9版本 下载 ,解压缩并复制 下载网址 官网 页面 复制 将依赖手动引入手动加入依赖步骤 注意事项,不能使用Linux系统 ...
  • Hadoop提供了如下内容的数据类型,这些数据类型都实现了WritableComparable接口,以便用这些类型定义的数据可以被序列化进行网络传输和文件存储,以及进行大小比较。   package org.apache.hadoop....
  • PDF技术(一)-Java实现Office系列文件PDF文件

    万次阅读 多人点赞 2018-10-10 16:36:31
    最近,公司要求做个文件pdf的调研报告,于是在网上找了一些实现方法,现在将这些方法做个对比,并记录下来,以后或许有用呢,哈哈。 首先说一下需求,产品要求不能使用第三方软件实现,因为这种实现方式效率不高...
  • 利用POI将Word转换为Html,以便在浏览器上预览 packagecom.vito.demo.test; importjava.io.ByteArrayOutputStream; importjava.io.File; importjava.io.FileInputStream;...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 23,960
精华内容 9,584
关键字:

java实现html转成标准word

java 订阅