poi把word文档转换成html文件编码问题

qq_20533371 程序猿  2016-09-13 08:12:07
用poi讲word文档转换成html文件,文件可以生成成功,但是编码却不一致了,大家有没有遇到,代码如下:
public static String docx2html(File file, File outPutPath,String htmlFileName) {
InputStream in=null;
OutputStream out=null;
XWPFDocument document=null;
String outPutFile=outPutPath+File.separator+htmlFileName;
try{
// 1) 加载word文档生成 XWPFDocument对象
in = new FileInputStream(file);
document = new XWPFDocument(in);
// 2) 解析 XHTML配置 (这里设置IURIResolver来设置图片存放的目录)
final File imagePath=new File(outPutPath+File.separator+"image");
String img=SysConfig.getStrValue("upload_file_pre")+File.separator+imagePath;
final File url=new File(img);
if (!imagePath.exists() || !imagePath.isDirectory()) {
imagePath.mkdirs();
}
XHTMLOptions options = XHTMLOptions.create().indent(4);
options.URIResolver(new FileURIResolver(url));
options.setExtractor(new FileImageExtractor(imagePath));
options.setIgnoreStylesIfUnused(false);
options.setFragment(true);

// 3) 将 XWPFDocument转换成XHTML
out = new FileOutputStream(new File(outPutFile));
XHTMLConverter.getInstance().convert(document, out, options);

}catch(Exception e){
logger.error(e.getMessage(),e);
}finally{
close(out,document,in);
}
...全文
566 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
五个小鬼 2019-12-10
有没有相同问题已解决的,其实这不算乱码,只是编码格式是html的,我想用utf-8的,明明设定了编码,还是编译有问题
回复
weixin_41893405 2019-09-12
readFiles是html字符串 下面是方法: Matcher m=Pattern.compile("&#\\d*;").matcher(readFiles); StringBuffer sbf=new StringBuffer(); while (m.find()) { String s=m.group(0); s=s.replaceAll("(&#)|;",""); System.out.println("replaceAll :"+s); char c = (char) Integer.parseInt(s); m.appendReplacement(sbf, Character.toString(c)); //System.out.println("html全文group :" + m.group(0)); } m.appendTail(sbf); System.out.println("对乱码进行处理 :"+m.toString());
回复
牛邪骁 2018-06-04
我也遇到了。 XHTMLConverter 里的instance引用是个接口
private static final IXWPFConverter<XHTMLOptions> INSTANCE = new XHTMLConverter();
接口只定义了OutputStream参数的convert方法 强转一下 可以用writer做参数的重载方法 OutputStream out = new FileOutputStream(new File(htmlFileName)); OutputStreamWriter writer = new OutputStreamWriter(out, "UTF-8");//自定义编码 XHTMLConverter instance = (XHTMLConverter)XHTMLConverter.getInstance(); instance .convert(document, writer, options);
回复
qq_27775803 2017-03-01
楼主后来解决了么?
回复
qq_20533371 2016-09-18
...........................顶一下。。。。。。。。。。。。。。。。。
回复
qq_20533371 2016-09-14
来人呀,十万火急啊。。。。。。。
回复
sky_08_06_02 2016-09-14
回复
qq_20533371 2016-09-14
没人回复。。。顶一下
回复
发帖
Java SE
创建于2007-09-28

6.1w+

社区成员

Java 2 Standard Edition
申请成为版主
帖子事件
创建了帖子
2016-09-13 08:12
社区公告
暂无公告