|
一、前言
二、截圖法 三、打印法 四、BooX Viewer 五、pdg2bmp&jpg&tif&pdf&txt 六、Pdg2Pic 七、方法之比較與展望 八:題外話:圖像文件轉(zhuǎn)PDF 一、前言 PDG文件是超星公司電子圖書的專有格式,需要用超星公司的專用瀏覽器才能閱讀。本文討論P(yáng)DG轉(zhuǎn)圖像、PDF的方法,僅出于研究目的,并無意對(duì)超星公司的版權(quán)進(jìn)行任何形式的侵犯,也不希望任何人用本文討論的工具或方法從事侵權(quán)活動(dòng)。如果需要瀏覽PDG電子書,請(qǐng)通過購買點(diǎn)卡等方式,以合法的途徑獲得。 本文假定用戶通過合法的手段獲得PDG文件,只是由于希望能夠在比超星瀏覽器更好、更方便的瀏覽器上閱讀,并且不對(duì)轉(zhuǎn)換出來的文件進(jìn)行擴(kuò)散的情況下,才需要將PDG文件轉(zhuǎn)換成圖像文件或PDF文件。 二、截圖法 簡單點(diǎn)說,就是通過截圖的方法,直接將超星瀏覽器中顯示的內(nèi)容,截為圖片,再將圖片轉(zhuǎn)換成PDF文件。 這個(gè)方法可能是世界上最簡單、最樸素,也是最容易想到的方法,并且對(duì)于所有版本的超星瀏覽器和所有能夠正常顯示的PDG文件均適用。制約這個(gè)方法的因素包括: 頁面大小超出顯示區(qū)域,導(dǎo)致截圖截不全。解決的辦法包括:找一臺(tái)支持高分辨率設(shè)置的PC(現(xiàn)在17"液晶已經(jīng)很便宜,19"也快平民化了);如果顯卡支持旋轉(zhuǎn)顯示,則將整個(gè)屏幕旋轉(zhuǎn)90°顯示,方便顯示細(xì)長頁面。
手工一頁一頁截圖,勞動(dòng)強(qiáng)度比較大。解決的辦法就是用各種現(xiàn)成的按鍵、鼠標(biāo)錄制/播放軟件與屏幕截圖軟件相結(jié)合,或者自己做一個(gè)連翻頁帶截圖的小軟件,實(shí)現(xiàn)自動(dòng)化操作。 截出來的圖像可能需要進(jìn)行整理,包括切邊、圖像文件格式轉(zhuǎn)換等。 超星瀏覽器對(duì)打印頁數(shù)的限制。超星瀏覽器會(huì)限制合法用戶每個(gè)月的打印總頁數(shù),夠數(shù)(每月一千頁)后就不允許打印。解決的辦法包括將ssreader.ul文件屬性改為只讀,或定期對(duì)這個(gè)文件進(jìn)行備份、恢復(fù)。 超星瀏覽器對(duì)打印效果的限制。 總之,在我看來,打印法雖然簡單方便,打印黑白圖像也問題不大,但是打印灰度/彩色圖像會(huì)出現(xiàn)圖像質(zhì)量衰減或文件膨脹等問題,所以至少我自己不到不得已是不會(huì)用的。
四、BooX Viewer BooX Viewer是Momotalo、ShunCox、dd321等合作開發(fā)的一款輕量、綠色PDG瀏覽器,無需安裝,單獨(dú)一個(gè)EXE文件即可運(yùn)行,并且能夠直接讀取ZIP文件中的PDG文件等,這些都比原版超星瀏覽器強(qiáng),也導(dǎo)致了它的流行。 早期版本的BooX Viewer提供一個(gè)“轉(zhuǎn)換到DjVu”功能,該功能先將PDG文件轉(zhuǎn)換成BMP,再轉(zhuǎn)換成DjVu文件。因此也有人利用此功能的前半部分,先將PDG文件轉(zhuǎn)換成BMP,再將BMP轉(zhuǎn)換成PDF。不過這個(gè)功能在后來的版本中已經(jīng)取消了,并且加了一些類似廣告的限制。 BooX Viewer的開發(fā)基于對(duì)PDG文件格式的分析,不需要超星瀏覽器或DLL的支持,并且能夠解碼加密的10H等格式,這些都讓我對(duì)其開發(fā)者充滿了敬意。 五、pdg2bmp&jpg&tif&pdf&txt 這個(gè)軟件是coolman開發(fā)的,對(duì)PDG的支持(包括OCR)基于超星Pdg2控件,對(duì)圖像、PDF的支持基于Pegasus ImagXpress Professional控件,運(yùn)行前需要先注冊(cè)控件。 這個(gè)軟件的發(fā)行范圍很窄,最新版是多少我也不知道,只能以我手上現(xiàn)有的3.8b0419版來說事。在使用這個(gè)版本的過程中,我發(fā)現(xiàn)它存在下列限制: 直接將PDG轉(zhuǎn)換成PDF,則所有彩色、灰度圖像均變成黑白圖像。解決的辦法是先轉(zhuǎn)換成BMP,再用其它軟件將BMP轉(zhuǎn)換成PDF。 但是不知道為什么,pdg2bmp&jpg&tif&pdf&txt沒有文件重新編號(hào)功能,所以在從BMP轉(zhuǎn)換成PDF時(shí),頁面順序調(diào)整起來很麻煩。 將PDG轉(zhuǎn)換成BMP等圖像格式時(shí),允許使用多線程并行轉(zhuǎn)換,但是似乎穩(wěn)定性會(huì)隨之下降,所以我都只敢用單線程轉(zhuǎn)換。 最要命的一點(diǎn)就是:這個(gè)軟件在轉(zhuǎn)換時(shí)需要占用系統(tǒng)剪貼板,因此如果在轉(zhuǎn)換過程中同時(shí)用Office等軟件干活(沒辦法,轉(zhuǎn)換過程實(shí)在是太漫長了),則復(fù)制/粘貼功能將失效。我先是在工作時(shí)發(fā)現(xiàn)了這個(gè)問題,然后用剪貼板監(jiān)視軟件證實(shí)了我的猜測。對(duì)剪貼板的占用不僅影響前臺(tái)軟件的正常使用,而且由于Windows本身對(duì)系統(tǒng)剪貼板的限制,在轉(zhuǎn)換 幅面很大的PDG文件時(shí)會(huì)轉(zhuǎn)不了。 雖然有一些問題,但是這個(gè)軟件支持加密的AAH格式等(除該軟件外,coolman還開發(fā)了一些獨(dú)立運(yùn)行的PDG解密軟件),這些都讓我對(duì)coolman及其作品充滿敬意。 六、Pdg2Pic
在發(fā)現(xiàn)coolman的pdg2bmp&jpg&tif&pdf&txt會(huì)占用系統(tǒng)剪貼板后,我google了一下,還真查到了一段源代碼,雖然我不可能看到pdg2bmp&jpg&tif&pdf&txt的源代碼,但我相信它的核心應(yīng)該與這段代碼相似。不過在多看了兩遍這段代碼后,我覺得既然已經(jīng)用了Pdg2控件,為什么不用它提供的其它接口獲取圖像,干嘛非要用系統(tǒng)剪貼板?為了證實(shí)我的想法的可行性,我花了點(diǎn)時(shí)間寫了Pdg2Pic這個(gè)軟件,順便對(duì)我在使用pdg2bmp&jpg&tif&pdf&txt過程中發(fā)現(xiàn)的一些問題做了改進(jìn),包括: 轉(zhuǎn)換過程不占用系統(tǒng)剪貼板,不影響用戶在前臺(tái)的正常工作。 可以自動(dòng)將文件按封面、前言、目錄、正文、附錄的順序排列,也可以手動(dòng)調(diào)整文件順序。 提供預(yù)覽功能,在轉(zhuǎn)換前可以先瀏覽PDG圖像。 PDG文件的掃描DPI自動(dòng)轉(zhuǎn)存入生成的TIFF、PNG文件,便于在轉(zhuǎn)換成PDF文件時(shí)設(shè)置頁面大小。 如果檢查發(fā)現(xiàn)PDG文件是純正的JPG文件,將不進(jìn)行任何轉(zhuǎn)換,直接將PDG復(fù)制為JPG;黑白PDG文件轉(zhuǎn)存為采用CCITT G4壓縮的TIFF文件,以獲取高壓縮比;灰度/彩色PDG重新壓縮為有損的JPG或采用JPEG壓縮的TIFF文件,或無損壓縮的PNG文件,或JPEG 2000(有損/無損)。 由于我沒有時(shí)間對(duì)加密PDG文件進(jìn)行研究,因此Pdg2Pic不像pdg2bmp&jpg&tif&pdf&txt那樣支持眾多加密PDG格式。如果在Pdg2Pic統(tǒng)計(jì)的文件類型中出現(xiàn)加密格式,需要用1xhkillerfull、aahkiller等進(jìn)行解密,然后再用Pdg2Pic進(jìn)行轉(zhuǎn)換。如果您原意提供PDG文件解密算法或代碼,歡迎與我聯(lián)系。 七、方法之比較與展望 上面介紹了一些PDG轉(zhuǎn)圖像、PDF的方法,說句實(shí)在話,我認(rèn)為沒有一種方法是完美的,多多少少都有點(diǎn)毛病。而且在我看來,對(duì)于一個(gè)真正的PDG轉(zhuǎn)PDF軟件,至少還要解決以下問題: 從PDG目錄到PDF書簽(Bookmark)的轉(zhuǎn)換?,F(xiàn)在有些PDG圖書是帶目錄的,在超星瀏覽器中打開后,左側(cè)會(huì)顯示樹狀結(jié)構(gòu)的目錄,便于快速定位需要閱讀的頁面。這個(gè)與PDF中的書簽很類似,但是現(xiàn)在似乎還沒有一個(gè)軟件能夠在將PDG轉(zhuǎn)換成PDF時(shí),順手將目錄轉(zhuǎn)換成書簽。
將圖書信息(bookinfo.dat)插入PDF文件,便于用Adobe PDF 支持透明背景。原始的黑白PDG文件本身可以按透明背景色顯示,因此在超星瀏覽器中可以根據(jù)需要對(duì)背景色、前景色進(jìn)行設(shè)置,便于長時(shí)間觀看。相比之下,PDF的白底黑字看起來就累多了。其實(shí)PDF 沒有線性優(yōu)化功能。如果您制作的PDF只在本地閱讀,不打算通過IE在線閱讀,這個(gè)缺點(diǎn)將變成優(yōu)點(diǎn)。 |
|
|