需求
对一份doc文档进行操作,读取内容、把内容存储起来、修改内容,再把内容放回原文档输出新的word文档;内容主要涉及:文本、文本样式、表格等
难点
- doc文档属于老旧文档(本身格式属于
二级制) 开源工具如poi对doc支持有限- 能实现简单的需求如,手工处理一份文档在文档中用占位符号标明要修改的地方,再用新的内容去替换掉文档中的符号(需要用到poi中一个
replacexx的方法)
- 能实现简单的需求如,手工处理一份文档在文档中用占位符号标明要修改的地方,再用新的内容去替换掉文档中的符号(需要用到poi中一个
- 开源工具如poi对doc支持有限,想要插入一个新的表格,这个表格是无法设置表格属性的
- 官方文档也没有找到设置表格的属性方法,调用
insert表格的一个方法,结果:(1)一个丑陋的缩在一起的表格,你的内容不好插入表格,同时内容就算插进去了,你会得到一个更丑陋的表格(样式无法设置,文本撑大了表格)(2)插入了表格,文档其他地方格式损坏如页脚、页眉
- 官方文档也没有找到设置表格的属性方法,调用
- doc属于二级制文件,它对于各个区域的界定相当于是用一个
游标界定某些区域是什么(标题、页脚、页眉等),随意插入文本,但是poi工具不会帮你去移动游标,不可比避免损坏文档(内容跑去了其他区域)
解决方法
- 有实力,可以使用付费库
Aspose处理doc文档,这个库是商业库(免费用时文档有水印)很好的支持doc老旧二进制的一些处理 - 手动处理,在文档进入代码处理之气那,手动将文档用工具另存为docx版本(如wps)
- 文件很多,需要尽可能代码流程化,需要用到外部工具
LibreOffice转换(代码+服务器做一个类似于手动用wps转换的步骤)工具开源,也是专栏后续使用的工具安装使用LibreOffice - 通知上游系统,能否直接提供新版本docx文档