最近需求是写一个将docx和doc解析后转换为json格式输入到json临时文件中的功能,然后前端读取json文件去渲染做到和文档内容一致,在这里归纳下难点,以及国内网站基本没有相关demo的点。
先说下docx和doc的区别吧,区别实际上就是一个好用而另一个反人类,现在创建一个新的文档,office都不会给你选择,直接默认docx,除非你另存为doc或者直接修改后缀,这样的原因是doc这种二进制存储的玩意过于反人类:
docx文件修改后缀为zip后解压,你可以在这个文件夹里面看到所有文档内容信息,样式,图片之类的,doc的话相同操作你啥都看不到。这样就导致你使用poi解析docx和doc的难易程度完全差得十万八千里。
另外poi用来解析doc的hwpf包也写的很乱,对比poi用来解析docx的xwpf包来说,xwpf包看底层会有方法说明,而且命名方式可以让你就算没有方法说明,大致也很容易看得懂这个方法用来干什么的,但是hwpf包就不一样,一堆枚举,方法也很凌乱,阿帕奇官网对于方法的说明几乎没有,再加上国内使用poi的本来就少,大多直接用阿里的poi-tl之类的,而且用poi解析文档的更是少之又少,大多资料都是解析excel的,少之又少里面大多又是解析docx的,doc的又是又是少之又少。希望自己接下来的一些补充能够在国内论坛里贡献一点资料吧(虽然很冷门,但是希望以后有和我做一样事情的程序员能少走点弯路)
最后因为我应届入职不久,代码可能比较稚嫩,希望能给你带来帮助,轻喷。
docx,doc的解析难点
首先我觉得比较偏门资料比较少的有五个:<