最近在研究Web中的文档管理,文档管理永远是企业中的很重要的一部分,其中遇到一最大的难题就是如何实现把大部分常用的文档进行在线预览及搜索,如果仅是实现Doc的展示,问题比较简单,JAVA中对Word的操作比较多。一国外哥们还对不同的技术框架写了文档的展示
https://angelozerr.wordpress.com/2012/12/06/how-to-convert-docxodt-to-pdfhtml-with-java/
本文对docx4j3.2.1的版本进行了测试,发现使用上还是比较方便,目前这个框架还分商业版及免费版本,商业版本多一些对OLE的嵌入式的对象进行转换。虽然该平台提供了PPTX,XLSX的转换,但目前其中的示例不提供这种转换示例。
对下为转换的代码示例:
package com.redxun.core.pdf.docx4j; import java.io.File; import java.io.FileOutputStream; import java.io.OutputStream; import org.apache.commons.io.IOUtils; import org.docx4j.Docx4J; import org.docx4j.Docx4jProperties; import org.docx4j.convert.out.FOSettings; import org.docx4j.convert.out.HTMLSettings; import org.docx4j.fonts.IdentityPlusMapper; import org.docx4j.fonts.Mapper; import org.docx4j.fonts.PhysicalFonts; import org.docx4j.openpackaging.packages.WordprocessingMLPackage; /** * dox转pdfl工具类 * @author redxun */ public class PdfTool { /** * docx文档转换为PDF * * @param docx docx文档 * @param pdfPath PDF文档存储路径 * @throws Exception 可能为Docx4JException, FileNotFoundException, IOException等 */ public static void convertDocxToPDF(String docxPath, String pdfPath) throws Exception { OutputStream os = null; try { WordprocessingMLPackage mlPackage = WordprocessingMLPackage.load(new File(docxPath)); //Mapper fontMapper = new BestMatchingMapper(); Mapper fontMapper = new IdentityPlusMapper(); fontMapper.put("华文行楷", PhysicalFonts.get("STXingkai")); fontMapper.put("华文仿宋", PhysicalFonts.get("STFangsong")); fontMapper.put("隶书", PhysicalFonts.get("LiSu")); mlPackage.setFontMapper(fontMapper); os = new java.io.FileOutputStream(pdfPath); FOSettings foSettings = Docx4J.createFOSettings(); foSettings.setWmlPackage(mlPackage); Docx4J.toFO(foSettings, os, Docx4J.FLAG_EXPORT_PREFER_XSL); }catch(Exception ex){ ex.printStackTrace(); }finally { IOUtils.closeQuietly(os); } } /** * 把docx转成html * @param docxFilePath * @param htmlPath * @throws Exception */ public static void convertDocxToHtml(String docxFilePath,String htmlPath) throws Exception{ WordprocessingMLPackage wordMLPackage= Docx4J.load(new java.io.File(docxFilePath)); HTMLSettings htmlSettings = Docx4J.createHTMLSettings(); String imageFilePath=htmlPath.substring(0,htmlPath.lastIndexOf("/")+1)+"/images"; htmlSettings.setImageDirPath(imageFilePath); htmlSettings.setImageTargetUri( "images"); htmlSettings.setWmlPackage(wordMLPackage); String userCSS = "html, body, div, span, h1, h2, h3, h4, h5, h6, p, a, img, ol, ul, li, table, caption, tbody, tfoot, thead, tr, th, td " + "{ margin: 0; padding: 0; border: 0;}" + "body {line-height: 1;} "; htmlSettings.setUserCSS(userCSS); OutputStream os; os = new FileOutputStream(htmlPath); Docx4jProperties.setProperty("docx4j.Convert.Out.HTML.OutputMethodXML", true); Docx4J.toHTML(htmlSettings, os, Docx4J.FLAG_EXPORT_PREFER_XSL); } }
相关推荐
docx4j所需jar包整合,其中word转pdf,word转html,word中docx转doc,java代码实现,都可以使用,仅限学习参考使用。
Export as PDF (using Plutext's PDF Converter, or use docx4j-export-FO project) Produce/consume Word 2007's xmlPackage (pkg) format Apply transforms, including common filters Font support (font ...
模版替换;CustomXML绑定 生产/消费Word2007的xmlPackage(pkg)格式 作为docx保存docx到文件...作为HTML或者PDF导出 比较文档、段落或者sdt(内容控件)之间的差异 字体支持(字体替换及使用任何文档中嵌入的字体)
可以导出PDF,但是导出的PDF中,表格没有线框
Java利用aspose将word文档转换成pdf格式等全面支持DOC, DOCX, OOXML, RTF HTML, OpenDocument, PDF, EPUB, XPS, SWF 相互转换
B: office word文件 ".doc", ".odt", ".docx", ".dotm", ".docm" C: wps文档 ".wps" D: office excel文件 ".xls", ".xlsx", ".xlsm", ".xltm" E: wps表格 ".et" F: office powerPoint文件 ".ppt", ".pptx", ".potm",...
B: office word文件 ".doc", ".odt", ".docx", ".dotm", ".docm" C: wps文档 ".wps" D: office excel文件 ".xls", ".xlsx", ".xlsm", ".xltm" E: wps表格 ".et" F: office powerPoint文件 ".ppt", ".pptx", ".potm",...
B: office word文件 ".doc", ".odt", ".docx", ".dotm", ".docm" C: wps文档 ".wps" D: office excel文件 ".xls", ".xlsx", ".xlsm", ".xltm" E: wps表格 ".et" F: office powerPoint文件 ".ppt", ".pptx", ".potm",...
B: office word文件 ".doc", ".odt", ".docx", ".dotm", ".docm" C: wps文档 ".wps" D: office excel文件 ".xls", ".xlsx", ".xlsm", ".xltm" E: wps表格 ".et" F: office powerPoint文件 ".ppt", ".pptx", ".potm",...
B: office word文件 ".doc", ".odt", ".docx", ".dotm", ".docm" C: wps文档 ".wps" D: office excel文件 ".xls", ".xlsx", ".xlsm", ".xltm" E: wps表格 ".et" F: office powerPoint文件 ".ppt", ".pptx", ".potm",...
B: office word文件 ".doc", ".odt", ".docx", ".dotm", ".docm" C: wps文档 ".wps" D: office excel文件 ".xls", ".xlsx", ".xlsm", ".xltm" E: wps表格 ".et" F: office powerPoint文件 ".ppt", ".pptx", ".potm",...
pdfprint_cmd是国外的一款批量pdf打印工具,当时使用他的目的是实现物流打印快递单,批量快速打印,不依赖adobe直接打印,支持多种文件格式打印,将PDF文件打印到物理打印机,纸张大小可以选择标准纸张或用户定义的...
Abex Document Converter Pro是一款多功能为一体的文档转换工具,可以高质量的转换PDF文档到HTML, Text, Image、Word、Excel、PowerPoint等格式。同时它支持许多不同格式的文档和图像相互之间的转换。 它支持许多...
Okdo Document Converter Professional 是一款文件格式转换软件,支持doc,docx,docm, xls, xlsx, xlsm, ppt, pptx, pptm, pdf, rtf, txt, htm, html, url, jpg, jpeg, bmp, gif, tif, wmf, emf, png, jp2, j2k, pcx,...
Abex Document Converter Pro是一款多功能为一体的文档转换工具,可以高质量的转换PDF文档到HTML, Text, Image、Word、Excel、PowerPoint等格式。同时它支持许多不同格式的文档和图像相互之间的转换。 它支持许多...
B: office word文件 ".doc", ".odt", ".docx", ".dotm", ".docm" C: wps文档 ".wps" D: office excel文件 ".xls", ".xlsx", ".xlsm", ".xltm" E: wps表格 ".et" F: office powerPoint文件 ".ppt", ".pptx", ".potm",...
Okdo Document Converter Professional是一款多媒体文件转换软件,支持doc,docx,docm, xls, xlsx, xlsm, ppt, pptx, pptm, pdf, rtf, txt, htm, html, url, jpg, jpeg, bmp, gif, tif, wmf, emf, png, jp2, j2k, pcx...
Okdo Document Converter Professional是一款多媒体文件转换软件,支持doc,docx,docm, xls, xlsx, xlsm, ppt, pptx, pptm, pdf, rtf, txt, htm, html, url, jpg, jpeg, bmp, gif, tif, wmf, emf, png, jp2, j2k, pcx...
B: office word文件 ".doc", ".odt", ".docx", ".dotm", ".docm" C: wps文档 ".wps" D: office excel文件 ".xls", ".xlsx", ".xlsm", ".xltm" E: wps表格 ".et" F: office powerPoint文件 ".ppt", ".pptx", "....