用OpenOffice实现Word转Html完整方案
网上比较流行的Word转Html有Jacob、POI和OpenOffice。
在这里简单说下Jacob,Jacob是调用MS Office完成Word转Html,用到Jacob.jar和Jacob.dll。
我试了下官方最新版的Jacob1.17版本,同一个word文件Jacob好是3S,转换的html在IE8下浏览正常,在IE11和Firefox下浏览有兼容性问题;OpenOffice耗时1.5S,主流浏览器没有兼容性问题。
OpenOffice转换html后会有文档内容靠页面左对齐的问题,这里页面样式代码改下就可以了,样式转换后对齐方式和Word文档对齐方式一致,图片居中显示。
public class JodUtils { /** * jod转换类 * @param File source office文件 * @param File html 转换输出html文件 * @throws IOException */ public static void converter(File source, File html) throws IOException { OpenOfficeConnection con = new SocketOpenOfficeConnection(8100); try { con.connect(); } catch (ConnectException e) { System.err.println("文件转换出错,请检查OpenOffice服务是否启动。"); e.printStackTrace(); } DocumentConverter converter = new OpenOfficeDocumentConverter(con); converter.convert(source, html); con.disconnect(); formatStyle(html); } /** * html样式转换 * @param File html html文件 */ public static void formatStyle(File html) { String file_path = null; StringBuffer s_html = new StringBuffer(); try { //读取文件路径 file_path = html.getPath(); //读取文件 BufferedReader br = new BufferedReader(new InputStreamReader( new FileInputStream(html), "GBK")); while (br.ready()) { s_html.append(br.readLine()); } br.close(); // 删除临时文件 html.delete(); //写文件 BufferedWriter writer = null; writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(file_path)),"GBK")); writer.write(formatStyleUtils(s_html.toString())); writer.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } /** * html样式转换工具 * @param String html html代码 * @return */ public static String formatStyleUtils(String html) { //去除左对齐样式 //P { margin-bottom: 0.21cm; direction: ltr; color: #000000; /**text-align: justify;**/ widows: 0; orphans: 0 } html = html.replaceFirst("text-align: justify;", ""); //图片居中样式 html = html.replaceAll("<IMG", "<CENTER><IMG"); return html; } }
参考文档:JAVA:借用OpenOffice将上传的Word文档转换成Html格式
java OpenOffice把word转html(Convert word to html
去掉word冗余格式 java正则表达式
相关推荐
lupeng 2020-11-14
sjcheck 2020-11-10
sjcheck 2020-11-03
meylovezn 2020-08-28
owhile 2020-08-18
Francismingren 2020-08-17
pythonclass 2020-07-29
sunzhihaofuture 2020-07-19
爱读书的旅行者 2020-07-07
行吟阁 2020-07-05
tianqi 2020-07-05
行吟阁 2020-07-04
冰蝶 2020-07-04
lyg0 2020-07-04
owhile 2020-07-04
opspider 2020-06-28
lengyu0 2020-06-28
tianqi 2020-06-21
dadaooxx 2020-06-16