onlyoffice实现文档比对(Beta版)-纯文字比对(非OCR)
一、说明
文档比对光靠前端或者后端是无法实现的。
该文中的实现方案为:onlyoffice+java。java进行文档差异化比较并输出对比结果,only进行得到结果处理+渲染。
此方案目前为Beta版本,简单Word Demo实现了比对结果。css、关联动态效果登将在后期逐步优化。
查看地址:onlyoffice-曹瑞版本演示站A Modern Back-end Management Systemhttp://47.94.91.67/#/onlyoffice_doc/main
二、预览
三、onlyoffice端实现思路
onlyoffice作为前端展示,其实只需要按照后端返回的比对结果分别对文本块进行【类型】标记渲染就可以了,比如:
1、比如从后端获取得到的比对结果为:【下样例】,标记被比较文档中第一个段落中【新增】两个字为变动内容。
{type:addition, changeParagraph:0, startPos:3, endPos:5}
2、以【预览模式】打开文档,这里推荐使用预览模式打开,因为对于查看文档而言,需要屏蔽鼠标键盘误操作导致修改了原始文档,造成数据问题。
3、清洗文档格式,尽可能让文档内容保持清晰,方便后续的标记比对查看。我的方案中处理:批注、超链接、书签,其他更多的对象也可以由开发者自行适配。
4、打开预览编辑模式,准备渲染。
5、根据【1】中的数据标识结构,分别进入比较文档和被比较文档中找到对应的区块进行渲染。
6、到这里其实核心就结束了,剩下的就是外层HTML的dom渲染和事件绑定之类的,这个就看个人对品质的要求。
四、后记-个人用
尝试思考:OCR+段落聚合+自然文本拼接,向做得更好的平台学习。