PdfToy里有什么?
由于PdfToy(PT)从来没有出过免费版,D版PT则版本低到近乎玩笑,所以很多人都在好奇的问我一个问题:PT里究竟有什么?
我自己总结了一下,PT里的功能大概可以分成以下三类:
一、独一无二的功能
这类功能由于思路清奇、技术小众,所以目前除了PT外我还没有见过其他软件有,包括:
1、把Pdg2Pic转的PDF,再转回PDG
如果原PDG是单层的PNG、JPG,其实用很多软件的“图像导出”功能也可以导出。但如果是单层的纯黑白图像,其他软件由于不掌握PDG版的纯黑白图像编码技术,所以只能导出为TIFF、PNG等(凡是把纯黑白图像存为JPG的,不是傻就是坏),要通过PdgRenamer过一遍才能转换成SSREADER能够直接打开的标准00H版PDG。而PT由于掌握该项编码技术,可以直接导出00H版PDG文件,不需要在PdgRenamer里过一遍。感谢coolman无私提供的技术!
D版PT实在是太古老了,当时我还没有掌握PDG版的纯黑白图像编码技术,所以把纯黑白图像转成了DjVu文件再加一个PDG头,懂行的人看了会觉得很怪异。
如果原图是文字处理为纯黑白、插图分片处理成灰度、彩色图像的复合型PDG(在PdgPic里显示为T3类型),则目前用其他任何软件都不能导回完整的PDG,只能用PdfToy。
2、用正则表达式对PDF文件内容进行替换
喜欢这个功能的人喜欢到骨子里,甚至有人相信这个功能无所不能;讨厌这个功能的人也能讨厌到骨子里,甚至认为这个功能根本就是个坑。而我自己为了使用这个功能,《PDF Reference》也不知道翻了多少遍。
当年和国外某PDF软件开发者讨论这个功能的时候,他直接说我开发这个功能就是在打开潘多拉的盒子,所以我相信无论是过去、现在还是将来,都不会有哪家严肃的软件公司会开发出竞品。
当年我在readfree论坛写了20多篇PT教程,其中绝大部分都和这个功能有关,包括用这个功能去水印、把图像改成透明、修复损坏PDF等,论坛复活后所有教程都还在。
二、靠特色吃饭的功能
这类功能其实别的软件也有,并非PT独有,但PT能够做到“一招鲜”的程度,包括:
1、无损导出PDF中的图像
能导出PDF中图像的软件不要太多,但如果导出前要求你自己选择需要统一导出成什么格式,而不是软件自己根据图像特征自动选择最合适的图像格式,那我劝你还是尽快把这样的软件删了吧,真心没啥意思,因为到不了无损导出的程度。
另外对于JPG等有损压缩图像,如果是常规的没啥花头的图像,其实不少软件包括开源软件也能无损导出,但如果加点料,比如说ICC色彩校正、CMYK反色、alpha通道透明图像等,那就到考验功力的时候了, 有些东西试过方知。
2、批量检查PDF文件是否损坏
这个功能大家都很需要,但能做好的软件真心不太多。PT中采用两种方法进行检查:
- 只查文件结构。好处是速度比较快,坏处是只检查PDF文件结构是否完整,但忽略了PDF内部数据可能存在的问题,所以存在漏检的可能。
- 采用UnicornViewer(UV)中的PDF引擎,在内存中对PDF逐页进行解码、模拟显示(术语是“渲染render”),从而能够检查PDF内部数据是否有错。换句话说,用这个功能检查不报错的,至少用UV看是不会有什么问题。
3、批量统一PDF页面宽度
在Acrobat里看PDF的时候,页面宽窄不一还真是一件心烦的事情。我也见过其他能够统一PDF页面宽度的软件,但采用的是“重新制作”的技术路线,即创建一个新的PDF,把新PDF的页面大小都设置为统一尺寸,然后把原来PDF解码后,重新灌进新PDF里。说得白一点,其实就是相当于虚拟打印技术,只不过没有打印驱动而已。
这种技术的缺陷自然也和虚拟打印技术差不多:速度慢不说,转换过程中还可能出现损失,碰到软件自己不能解码的PDF文件内容也会出现问题。
PT由于可以直接对PDF文件内容流进行操作(做正则表达式替换的副产品),所以采用了一条独特的技术路线:直接对页面描述部分的页面尺寸参数进行更改,然后在页面内容流最前面插入一个比例变换矩阵,实现页面缩放。所以:1、对原页面内容等不会进行其他修改,也就不会出现什么损失,完全是无损。2、不对除页面内容流之外的内容进行解码,所以PDF的其他部分采用什么奇奇怪怪的编码、压缩也无所谓了。
4、批量解密用口令保护的PDF
其实这类软件也很多,但PT在解密时,还能顺便对web优化、页面布局等进行处理。
三、一般性功能
包括PDF转图像、PDF页面裁剪等,没啥特色,从略。
题外话
D版PT的来历,我在《Z版与D版UnicornViewer的区别》里其实已经说了,这里不必再重复。至于声称想要PT的新用户,每次我都会问一句是不是真心想要,只要是真心想要的都能得到,得不到的都是真心不想要的。至于怎么找我,在我博客的置顶帖里有联系方式。
(完)