我的电子书历程

时间:2022-11-01 17:45:27

作者:马健
邮箱:stronghorse_mj@hotmail.com
发布:2008.08.03

说明:本文是应依荷听雨的要求,为readfree《书园》网刊第3期写的。

==================================================

我看电子书的时间应该算比较早,从DOS时代就开始了。那个时候扫描仪还是贵族享受,OCR也尚未普及,因此书的来源基本上是手敲(key in)。只不过有的网站敲的是名著,如早期的太阳升、新语丝等;有的敲的是网友自己的原创作品,不过这个似乎色文更流行。格式多半都是TXT。

在那个极度饥渴的时代,我最开始的想法是:“哪儿有更多的书?”,等到搜集到一定量后,才开始考虑:“怎样才能阅读得更方便一点?”。最原始的阅读方式可能是DOS下的type|more命令,后来发展到用EDIT、CCED等编辑器阅读。但是这些东西都要依赖中文DOS环境,毕竟有所不便,而且总是单调的文本,有时候也会觉得不过瘾,因此发展出一些与后来的打包电子书类似的东西。我曾经在52ebook论坛上作为史料发过国内EXE电子书先驱——VTTE(Visual Text To EXE Converter)的例子,VTTE自带中文字库和中文显示模块,可以在英文DOS下完美显示中文(类似PDF的内嵌字体),并且支持图文混排、超链接、背景音乐等,与后来的EXE电子书相比也差不了多少。

由于key in的错误率很低,因此当时包括我在内,似乎都没感觉到文字上的错误对阅读造成什么障碍,也很少有人提出校对的要求,都是能看就行了。

大概从Windows 95时代开始,扫描仪和OCR开始普及,导致网络上电子书出现了爆炸式增长。记得当时网络上几个主要做OCR书的网站,采取的都是分工合作的流水线式操作:扫瞄、OCR、校对都由不同的网友完成,大家都是无偿奉献、成果共享。最终TXT出来后,扫瞄的图像文件就被删除了——没办法,在那个年代,硬盘,尤其是服务器专用硬盘实在是太贵了。

由于OCR软件自身的原因,和校对水平的不同,导致当时网上某些文本错误较多,所以我都用Word来读书,边看边校对。刚开始的时候,一些文本整理工作也用Word来做,包括文件合并、段落合并等,后来发现Word干这些实在是太吃力,才做了TextForever(最开始的时候叫FineReader,因为与国外某软件重名,后来才改成这个名字)。

进入本世纪后,随着网络泡沫的急剧膨胀,所有人都在绞尽脑汁寻找吸引眼球的方法,电子书这种低成本、高吸引力的好东东,当然不会被所谓“聪明得脑门发亮”的IT人所放过。为了适应网站下载需要,同时便于添加LOGO、广告等,以及“防止资源被他人剽窃”,各种打包电子书开始大行其道,从最原始的HLP,逐渐发展到CHM、EXE、SWF、PDF等。在网络泡泡破灭以后,当年风起云涌的电子书网站们也纷纷风卷残云了,但是打包格式的电子书已经深入人心,甚至出现“TXT、HTML格式不能算是电子书”的井底论调,电子书的制作、传播也开始以非盈利性质的BBS为主力,如我当年常去的52ebook、rbook。

刚开始的时候,52ebook和rbook有点同质竞争的味道,经常出现一本书两边都发的情况,但是经过几次事件后,逐渐发展出了自己的特色:52ebook以EXE、CHM为主,rbook以PDF为主。

CHM比较单纯,EXE格式就比较花花了,我在4年前写的《常见电子书格式及其反编译思路》中有所介绍。不过这篇文章写得比较早,所以漏了后来风行一时的一种电子书——用Desktop Author(DA)制作的翻页电子书。在DA的官方网站上,对DA电子书的适用范围其实有清晰的界定,但是因为其花哨的界面,与某些国人的习性不谋而合,因此受到热烈的追捧,不管文本、图片甚至漫画电子书都用它。但是我因为在其他方面有过切身教训,所以当这种电子书刚刚在52ebook兴起的时候,就发了一篇《翻页电子书的隐忧》,建议别什么书都往DA上靠,不然早晚会后悔。遗憾的是,我当年在52ebook上仅有的两次争执,都是与DA的fans发生的,最终导致我对迷恋DA的人本身都产生了rpwt方面的怀疑。各位尽可说这是我狭隘的个人偏见,但我相信我当年的隐忧现在都得到了验证,至少DA的fans是日渐稀少了,以前留下来的DA书大概也都成了鸡肋。

当然当年的52ebook还是以HTML格式为素材的电子书为主,刚开始的时候是一本书一个文件,大家觉得看起来比较不过瘾,开始出现制作合集(把同一作者或同一题材的作品打包成一本书)的热潮,并且出现以制作合集成名的人物,甚至成为当年52ebook的招牌产品,如大名鼎鼎的《云中孤雁武侠系列合集》等。不可否认,这些合集的推出,确实方便了大家的阅读,但是由于一个合集可能包含几十本作品,因此难免出现“重量不重质”的问题,很多合集制作者都是把网上搜集的素材往模板上一套,然后换个图片、打包了事。至于素材有没有问题、文字全不全,那就不管了,所以这股“合集热”也受到一些诟病,不过我本人还是很喜欢合集的,以前收的单本书基本上都用合集替换了——放心,大家使用的素材都是一样的。不过网上感兴趣的素材就这么多,这么做合集总有做完的一天,所以几位合集达人最后都归隐了,但是后来的制作者总不能就此止步:年轻人还有旺盛的精力需要发泄,没成名的还有成名的热望在推动,没论坛币的总不能就靠转贴吃饭,……所以后来又出现了“合集的合集”,即把几个作者,甚至某个国家的一批作者,管他作品风格如何,就捏在一起推出一个合集。我以小人的阴暗心理推测,这也是没有办法的办法:可做的合集都被人做过了,改行去做OCR?太累了。去做校对?太郁闷了。还是把别人的合集反编译了,重新打包一遍来得方便。

当年在52ebook,我是主张反编译最力的人士之一,不过我的目的与合集制作无关,主要还是出于职业习惯,令我对所有来路不明的EXE都深怀疑虑,而且打包电子书没法用桌面搜索工具搜索、令反病毒软件的实时检测模块狂耗CPU……如此等等,都令我迫切希望把到手的每一本打包电子书都反编译成原始素材。为此,我花费了一个多月的时间在Windows 2000源代码的海洋中四处寻觅。最终的结果还算令我满意,不仅得到了通用的反编译IE内核电子书方法,中间的研究过程还产生了一些有趣的副产品,被我应用到了其他相关软件中。但是其中最重要的成果,我认为还是终于掌握了一种研究这份源代码的有效方法,按照这种方法,任何一个合格的Windows程序员都可以在几分钟之内定位到我花费了一个多月才找到的那段代码,即KillEBook/IECracker核心的基础。4年时间过去了,虽然中间数次有人表达了想仿制的决心,但是至今KillEBook/IECracker仍然是独此一家,绝无分号……

顺便一提,当年在我去过的某个以电子书为主的BBS的C/C++语言区,曾经有人发贴问过这份Windows 2000源代码有没有用,当时该BBS的人气还不算太难看,但是绝大多数人的回答却是“没用”,甚至出现“可以打印出来当茶杯垫”的论调。从此以后,我对该BBS的所谓“技术”再无丝毫兴趣,也再没去过那个BBS,前几天收藏夹点错了误入一次,果然发现人气已尽。

在解决了反编译问题后,我从52ebook下载的电子书基本上都被我反编译了,压缩成zip后用MyReader看。但是在LP送我一个西门子SL55手机后,我才发现原来手持设备也是个好东东啊,真正实现了读书人梦寐以求的“随时随地,皆可读书”。所以久已遗忘的TextForever又被我捡了起来,并且加入了新的功能。甚至在后来投入PDG的怀抱后,我也念念不忘把PDG OCR成文本。

在52ebook混久了以后,我也发现了它的固有问题:想看时文没有问题,越时髦、越热门、越快餐的越能找到,但想找有点专业背景的就难了,就算能找到,其权威性也很难令人放心。这个问题的根源其实在于网络上的文本素材:时文可以从新浪读书频道、各文学BBS等找到,专业书籍没人会在网上首发,想看文本只能靠OCR、校对,但是受读者群的限制,又有几个人愿意从事这样的苦工?

正好在这个时候,rbook上开始流行扫描版PDF,内容都是一些具有专业背景的书籍,我一见之下大喜过望,开始迫不及待的收藏过程。当然我绝对不会相信这些书籍全都是发书的人自己扫的(没办法,他们发得实在太快、太多了),所以留意了一下发书人的讨论,才知道都是从PDG打印过来的,而当时大名鼎鼎的几个发书人都推荐到readfree网站讨论PDG相关问题,我头脑一热也跑到readfree注册了一下,不过当时忙着在52ebook、rbook收书,所以也没在readfree上混。

后来随着收书范围的扩大,我开始收到一些直接以PDG格式提供的书,迫不得已才想起来到readfree逛逛。由于受rbook惯性思维影响,我当时想的还是将PDG转成PDF看。那时readbook管理还没这么规范,我很顺利地找到了coolman的pdg2bmp&jpg&tif&pdf&txt,开始生平第一次自己动手转PDG成PDF(没办法,“打印大法”从来就不在我能够容忍的考虑范围之内)。转了几次后,我就发现coolman的软件有一个对我来说比较致命的问题:需要占用系统剪贴板。由于转换过程一般比较长,我都是边转换边干别的,不能用剪贴板实在太难受。当然这个问题之后没多久就被coolman自己解决了,但是当时搞得我实在难受,所以先上网搜了一下,大致知道coolman软件的原理,既然是用ActiveX控件,为什么不用得更加优雅一点?所以我就用另外的公开接口,开发了第一版Pdg2Pic,及配套的FreePic2Pdf。其实在最初的时候,这两个软件是打算象coolman那样合一的,但是开发到一半就发现那样太麻烦,而且在其他场合也存在将标准图像文件转换成PDF的需求,所以就分开了。在试着转了几本书后,我发现分步转换出来的PDF,要比一次到位转出来的更能令我满意,以后就再没考虑过两个软件合并的事情。

第一版Pdg2Pic虽然存在许多问题,但还是很幸运地引起了拽拽、coolman等人的注意(据coolman说他之前就已经从其他地方知道我了),介绍我进入了某个人才荟萃的地方,在那里不仅有coolman,还有cheming、hstong、小洋白菜(qdlsy)、伊兹鱼等PDG达人,从他们那里我不仅获得了后续Pdg2Pic发展所需的技术,更重要的是解决了我急需的PDG下载问题。基本上,在我到readfree之前根本就不知道有6xH的存在,而等我进入readfree后,在见识到真正的6xH之前,我就确信我这辈子大概都不会下载到6xH了(cheming似乎也有此问题,他开发PIZZA所需的最初几个6xH文件就是在readfree上开贴购买的)。所以时至今日,Pdg2Pic都不支持6xH,虽然从理论上说,基于ActiveX控件的解码软件至少能够解码自己本机下载的6xH文件,但对我来说实在没用。如果对用ActiveX解码PDG感兴趣,可以看一下我写的《用Pdg2.DLL解码PDG的境界》,当然不保证人人都能看得懂。

当时在那个地方,充满了浓郁的技术讨论气氛,记得cheming曾经感叹过:“这是我到过的最有技术气氛的地方”。而我在中间曾经出差过一个星期,回来后做的第一件事就是把出差期间其他人的所有发言从头到尾看一遍,一个字都不敢放过。充分的交流当然会产生丰硕的成果,而所有成果都是共享的。在hstong因为我们的在线反馈而一天之内7次升级自己的软件后,我也忍不住发表感慨:“花真金白银买的国外名牌原厂专家服务,都不如这里的免费服务周到!”。而拽拽当年“包打听”的名头,我相信至少有一部分要归功于此处。

在解决了基本问题后,我对PDG的热情迅速高涨,甚至专门到淘宝网上购买了超星读书卡以示支持,而Pdg2Pic+FreePic2Pdf也开始广为流传,为此我还专门在rbook发了教程和例子,希望能够影响其他人,制作出更多高质量的PDF电子书。可惜到头来,大多数人还是只想用软件最基本的功能,很少有人能够理解分步转换的真意,要求实现批量转换的呼声更是不绝于耳,搞得我对转换再没啥兴趣,却对OCR开始感兴趣。如上所示,我很早以前就从52ebook上发现网络资源匮乏导致EXE电子书同质化的问题,不过那时我手上没啥资源,所以虽然知道问题,却无对策。而一头扎进PDG后,图版资源不再是问题,OCR也可以用Office 2003,所有条件都已具备,差的只是人了。所以我在52ebook上开始号召大家OCR,自己也带头OCR了几本书。经过长期的、不懈的、连诱惑带激将的艰苦努力,这个号召终于得到几个人的响应(没夸张,真的只是“几个”),但是随着52ebook的关闭,这事也就此无下文了,留下来的大概只有为方便OCR校对而制作的一本《汉典离线精简版》。

这时rbook对我的作用也发生了变化,我不再收藏上面的任何PDF,每天还是必去,看到感兴趣的书还是必下,看过之后如果觉得有必要保留,都会删掉下载的PDF,重新下载清晰版的PDG:我觉得在读秀、lr上漫无目的地搜索太无聊了,所以把rbook和readfree的求书区当作了索引,经常上去看看。

在折腾PDG的同时,我在hstong的影响下,到中美百万逛了一下,看了几本DjVu格式的电子书。与其他人不同,DjVu格式对我最大的吸引力并不是所谓的“高压缩比”,而是DjVu格式最常用的浏览工具WinDjView。我看电子书的时候,一般喜欢选择缩放至窗口宽度,但是Acrobat有个最令我痛恨的地方:如果PDF页面大小不统一,显示到后面更宽的页面时,前面窄页就会缩小,搞得我很是恼火,FreePic2Pdf就没少在这方面动脑子。而WinDjView完全没有这方面的问题,只要设定了“适合宽度”,所有页面就会整整齐齐地缩放到窗口宽度,绝对不像Acrobat那样毫无节操。再加上Acrobat用多了以后,总觉得与我原来惯用的ComicsViewer相比,缺少了一些我最习惯的功能,用起来有点难受。所以开始考虑把几个软件的特点综合在一起,开发一个PDG专用浏览器,即后来的UnicornViewer。虽然今天的UnicornViewer已经支持PDF、DjVu,但骨子里这些都不过是附带的,最根本的目的还是PDG。所以自从UnicornViewer问世以后,我就开始对以前下载的PDF进行洗牌,如今已全部洗成了清晰版PDG。话说回来,似乎不论收藏什么,到了一定程度都必然要洗牌,洗啊洗的也就习惯了。

总之,在readfree各路高手的无私帮助下,让我见识到超星、读秀、中美百万等地方,我才终于明白了什么叫做电子图书馆,什么叫做电子书,也从此一头扎进去,到现在还没出来,在可预见的将来也没打算出来,而我与reafree的缘分也还会继续下去。