用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
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