信创pdf工具箱(XCPDF)V7.0,一如既往地听劝,一如既往地免费、离线、完全
根据大家提的意见建议,我把信创PDF工具箱(XCPDF)从V6.5升级到了V7.0,共有40个模块了。

这次升级,增加了3个模块,包括档案馆常用的“自动删除空白页”和“小册子拆分”2个模块,以及CA签章查看模块。
同时根据大家的意见,对多个模块作了认真打磨,修复了多个BUG。
主要包括以下内容:
一、增加了3个模块,前2个为档案馆常用
1.增加了自动删除空白页模块
有人说,想要增加删除空白页功能,扫描文件时,扫描仪自动去除空白页功能失灵,需要用工具删除空白页。

我以前也用过扫描仪自带软件的检测空白页功能,感觉确实很鸡肋,大部分时候好使,但有时会误判。比如有时文件中只有几个字,它会认为是空白页,有时是一个空白页,但是扫描时映出了纸张背面的文字,它认为这不是空白页。
说到底,还是检测算法不过关。
本来我不想接这个活的,因为很容易翻车,后来想想,还是挑战一下自己吧。
新增的自动删除空白页模块,会自动检测PDF文件中每页的非白色像素比例,识别疑似空白页,并显示在下方,供您确认。,用户可以通过右侧的滑块调整检测阈值,阈值越低,要求越严格。
我用Word新建了一个5页的文档,第1页是4个汉字、第2页是3个点、第3页是123、第4页是一串数字、第五页是空白页,然后转换为PDF。

阈值设置为0.3%时,认为这5页都疑似空白页。

阈值设置为0.03%时,认为第2、3、5页疑似空白页。

阈值设置为0.00%时,认为第5页疑似空白页。

对于软件判定的结果,可以点击相应的预览图,此时会弹出大图供用户确认。
2.增加了小册子拆分模块
有人说,想要对骑马订扫描件,从中间剖开,重新排序。

这个功能主要用于以下用途:在扫描骑马钉装订的文件时,不想破坏文件,一般是拆了订书钉,用A3幅面的扫描仪扫描。扫描出来的页面上,一张纸上会有2页内容,如果是4张纸,各页面分布的顺序如下:

我用Word做了8页纸的文件,拆分前后对比。

需要注意的是,原始文件中各页面一定要按照顺序排列。如果顺序不对,可以在下面的预览窗口中拖动排序。
为了防止用户不知道正确的顺序,我在这个模块的页面上列出了从2张纸至8张纸的正确顺序表。如果你觉得不够用,还可以在页面上输入张数,自动计算正确的顺序。

3.添加了CA签章查看模块

主要用于打开带数字签名的 PDF(如电子合同、电子发票),自动识别签章位置,红框标出,方便快速核对签名详情。
这个模块来自GitHub用户gitca233的PullRequest,我采纳了他的代码并做了适配调整,在此感谢gitca233的贡献!
二、优化了9个模块
1.常规合并模块,可以合并发票类的pdf文件了
有人说,使用常规合并模块,在合并某东发票、12306火车票的发票时,页面会变成空白。
现在,这个模块中新增了发票模式,勾选后将对上传的文件进行检测,如果发现是特殊PDF,就自动转为图片再合并,正常文件仍保留矢量文字,兼顾兼容性与清晰度。如果不勾选,就是正常合并。

2.PDF压缩模块,可以指定压缩体积了
有人说,希望pdf压缩可以直接限定目标压缩大小,并保持清晰度最高。

现在已经实现了,如果用户限定了目标体积,程序会开始40轮迭代,自动选择最合适的方案,确保在体积达标的情况下选择最清晰的参数设置。

3.添加页码模块,可以从任意页开始编页码
有人说,添加页码这个功能是不是可以调整一下自定义,比如说PDF一共10页,第一页是封皮,我想第二页开始是第一页。

我增加了一个选项,从第X页开始编页码,封面不编页码、也不显示页码。配合后面的“起始页码”,可以实现更多选择。

另外,为了防止左右页码位置不对,新增“翻转左右页码位置”按钮,可手动调节奇偶页页码左右位置,解决双面打印时页码位置不符合预期的问题。
4.优化图章混合模式,黑色文字可以浮在红色印章上面了
有人说,添加图章和扇形骑缝章模块,加载的图章可以添加正片叠底效果吗?就是黑色浮于印章上方。

我在添加图章和扇形骑缝章这2个模块,都增加了3种混合模式,分别是常规、正片叠底、变暗,用户可根据印章类型和页面背景选择最佳模式。
常规,就是直接覆盖页面,红色印章会压住黑色的文字;
正片叠底,模拟真实盖章效果,黑色的文字会浮在红色印章上面;
变暗,白底纯红印章接近正片叠底效果。

5.优化图片转PDF后文件体积,体积不再暴增了
有人说,在不修改参数,使用默认参数的情况下,用“图片转PDF”的功能,转换一张2.22MB的JPG,得到的结果是20.3MB的PDF,这好像有点夸张,而且转换速度也比较慢,希望再优化一下。

原因为之前在转换时,先将jpg转为png,导致体积暴增,现在JPG/PNG图片直接嵌入原文件,不再经过Canvas转码,转换速度显著提升,JPG转出的PDF体积不再膨胀数倍。如果旋转了图片,体积会有增加,但不多。
有人说,图片转PDF时,左右旋转图片有时候会裁头去尾,破坏原始图片。在倾斜校正功能时调整旋转角度也会破坏原始图片。

这个也一并修改了,现在无论怎么旋转都不会出问题了。同时解决了图片在多次旋转后,边缘出现黑边的问题。
6.拆分对开页新增1X模式,可以自由调整清晰度
有人说,拆分对开页功能,目前只有2X、3X、4X可以选择,希望有1X选项。

安排,在拆分对开页模块增加了“1X原大小”的选项。

7.批注功能增强,可以随意画图了
有人说,目前的批注模块功能有限,只能添加线条、矩形,没有圆角矩形、圆形等,也不支持自定义填充框(不是边框)的颜色。

现在这个模块作了大幅改进,直线可以画任意方向,矩形、圆角矩形、圆形都可以增加填充色,还可以设置填充透明度。

8.优化模拟扫描件模块,效果更真实了
有人说,能不能把模拟扫描件模块里,旋转和黑边的随机幅度给一个控制。

现在更改了这个模块的交互逻辑,同一个文件内的所有页面统一使用同一个角度,用户可以调整幅度,此时会同时调整所有页面,移除了手动微调单页角度功能,导出结果与预览完全一致。

9.按书签炸开模块增加层级的选择,可以自由选择最大拆分层级
有人说,按书签炸开,希望有个层级的选择。

增加了这个选项,可以选择最大拆分层级,1代表一级书签,2代表二级书签。

三、修复了5个BUG
1.修复加密和解密模块在某些情况下失败的问题
有人说,解密失败了,不知道是什么问题,部分文件能正常解密。

也有人说,这个版本的解密功能有问题,输入正确密码提示密码错误

现在修复好了,加密和解密模块都没问题了。
2.修复按书签炸开模块炸开失败的问题
忘记是谁反馈的了,说是炸开失败,提示seqNum is not defined。
现在已经修复了。
3.修复扇形骑缝章从第2页开始印章上出现黑线的问题
有人说,骑缝章除第一页之外,其它页面上的印章都有黑色的框线。

仔细排查了一下,发现是因为切片坐标使用了小数,导致PNG图片透明边缘中的黑色像素被切到,现在我把切片坐标全部取整,并关闭了图片平滑,黑线消失。
4.修改删除页面模块大图预览失败的问题
有人说,删除页面模块点不开预览。

这是上次忘记修复的一个BUG,现在已经修复了。
5.修复页面滤镜模块导出文件不清晰的问题
有人说,使用了“页面滤镜”这个工具,导出来的pdf把原本清晰的画面都变成模模糊糊的马赛克了。

现在已经修复,输出清晰度与原文件一致。
四、暂时不准备增加的功能
有不少朋友问能不能支持OCR、能不能支持PDF和Office文件互转。这里统一回复一下:
1.关于OCR。 离线环境下做OCR是能做到的,也就是把图片识别成文字,这一步我后续可以考虑。但更复杂的排版还原,目前离线方案还搞不定。
2.关于Office转PDF。不管Windows还是信创环境,一般都安装了WPS,它本身就支持把Word、Excel直接另存为PDF,我就不重复造轮子了。
3.关于PDF转Word、Excel。这个难度比较大,核心难点在于文字识别和排版还原,尤其是精确还原原始排版,目前商业软件做得也不算很完美。国内做得比较好的是百度的PaddleOCR,但那是靠大模型实现的,我这个离线小工具就不凑这个热闹了。
五、结语
这个工具箱,真不是我一个人闷头写出来的。
从V1.0的7个功能,到现在的39个模块,每一次升级,都是大家在公众号里一条条留言"喂"出来的。
哪个按钮不好找、哪个功能不够用、信创环境下还缺什么,你们比我更清楚。
所以说,它是咱们所有人共同的智慧结晶。是你们让这个小工具,真正长成了能解决信创PDF痛点的实用工具箱。
如果你觉得这个工具箱好用,欢迎转发给身边的同事朋友。
再次感谢大家!

浙公网安备 33010602011771号