杂事太多,一直忙来忙去没时间写点正经的东西。最近写了个工具,用于比较两个PDF文件的不同,把差异点标出来。后端用Poppler解析PDF文件,然后比较,生成三个html,可用Chrome或Firefox(Edge和IE就悲剧了)打开。
查看不同点。这Poppler虽说免费开源,但Bug无数,真心难用。唉,看在不花钱的份上,忍了...
源代码量3万行的样子,运行依赖33个dll,算法有点复杂,虽然距离我的意愿依旧遥远,但总算见到雏形了。下面的截图是简单的比较了两个PDF文件的结果,鼠标点击最右栏就能标出来且能自动对齐变更点,添加或者删除的能对应原始位置。
下面是个文字变更的逻辑对齐部分截图。文字属性有变更的地方鼠标放上去能弹出不同之处,黑底绿字。
下面是单独比较光栅图片的截图,鼠标点击最右栏能自动对齐,添加或删除的则能对应到原始位置,图片变更的会标出所有变更点。
大致就如同前面三个截图的样子(目前缺矢量图的比较),应该能满足一般的PDF文档比较需求了。
诸位过客可以下载一个简单用例到电脑上,解压[可以考虑7z]后,用Chrome(或者Firefox,别用Edge和IE)
浏览器打开看看效果。在这里下载/Files/Chipset/test.zip
以上附件很小,麻雀虽小五脏俱全,该有的东西基本都有,可以比较的单个PDF文件1000页以上,且速度很快。
以上展示内容用的文字后贴背景页面格式,将来[升级中]解析PDF用BSD协议的pdfium替换GPL协议的Poppler,
页面展示借助PDF.js,但不再用文字和贴背景这种办法,再接下来做个单机界面,不再用浏览器,算是升级方向吧。
关于比较工具,下面多说几句。
做内容比较的工具Draftable很成功,用C#写的,可以比较Office和PDF文件,各格式任意混比,只能比文字。
我的只能比PDF文件,比较内容是文字和光栅图,有个Kiwi free pdf comparer类似,只不过需要Java运行环境。
此外,ABBY的Fine Reader和Adobe的Acrobat也都有比较功能,只不过精度和速度都明显弱一些。至于视觉
比较的工具,由于跟位置有关,大多数场合几乎等同于废物,这种网上一搜一大把,很多免费。纯文本内容的比较
工具就更多了,网上一搜一大堆,这里就不必啰嗦了。