方法很简单。
//filename word文档路径
Document doc = new Document(filename);
//htmlname html文件路径,SaveFormat.HTML 另存的文件类型
doc.save(htmlname,SaveFormat.HTML)
//这两步就已经将word文档转化为了一个html文件,如果文档里待图片,可能会报找不到类异常,根据报错下载相应的jar包即可。
//有图片的文档,转化为html后,会在html文件所在的目录生成相应的图片文件,html文件会引用这些文件,但相对路径可能会显示异常。
//需要重新处理转化后的html文件
//将html读取进来,值得一提的是,doc.save方法保存的html文件是utf-8编码,因此后续html文件的读写也需要用到utf-8
BufferedReader reader = null;
StringBuffer buff = new StringBuffer();
try {
reader = new BufferedReader(new InputStreamReader(new FileInputStream(htmlname),"UTF-8"));
String line;
while ((line = reader.readLine()) != null) {
buff.append(line);
}
reader.close();
} catch (Exception e) {
e.printStackTrace();
}
//替换图片的src值
String htmlStr = buff.toString();
Document parse = Jsoup.parseBodyFragment(htmlStr);
//拿到html中所有的img节点
Elements imgs = parse.getElementsByTag("img");
if(imgs.size()>0){
for(Element img : imgs){
//获取每个img节点的src元素
String linkSrc = img.attr("src");
//替换Src值为合适的路径
linkSrc = "http://xxxxxx"+linkSrc;
img.attr(tag, linkSrc);
}
String html = parse.html();
//输出修改后的html文件(同样也是utf-8编码)
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(new FileOutputStream(htmlname), "UTF-8");
BufferedWriter output = null;
try {
output = new BufferedWriter(outputStreamWriter);
output.write(html);
} catch (
IOException e) {
e.printStackTrace();
} finally {
try {
output.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
//对应的jar包
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.io.*;
import com.aspose.words.Document;
import com.aspose.words.DocumentBuilder;
import com.aspose.words.SaveFormat;