我與PDF——PdfToy發布周年紀念


這是很久以前發布在readfree論壇的一篇文章,用於紀念PdfToy發布一周年。最近翻硬盤翻了出來,覺得還沒有過時,所以重新發一次。

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

我對PDF接觸算是比較早,上個世紀就開始了。最初是看一些英文的標准、規范、開發文檔,中文最早接觸的應該是當年曾經廣為流行的《家庭藏書》系列。

最早用的PDF閱讀器自然是Adobe PDF Reader(當年叫“阿肚皮”)。后來為了對PDF頁面進行調整,經人推薦開始使用Acrobat,偶爾也用Foxit PDF Editor。

但是改變我的PDF之路的事情,是某年某月的某一天,某人站在我的面前,指着我的電腦屏幕對我說了一句話:“只有外行才用Acrobat看PDF,內行都用UltraEdit32!”

這句鏗鏘有力、言簡意賅的話就像扎在后脖梗上的一根鋼針,一直刺激了我很長時間。在這種刺激下,我不僅學會用UltraEdit32(后來改用更簡單的PdfView)看PDF,還堅持看完了《PDF Reference》的前幾章——雖然中間看着、看着就睡着了無數次,但每次醒過來后,想起那句話,下次又會接着看的。

不過真正讓這句話發揮實際作用,還是在我開始接觸PDG轉PDF以后。當時我在某個以PDF文件為特色的BBS上混,那里的PDF基本上都是從PDG轉換來的,最流行的轉換方法就是所謂“打印大法”,即直接從SSREADER打印成PDF,中間發展出“修改打印機名稱”、“修改文件只讀屬性”等技巧。另外還有一個少數派是先把PDG轉換成BMP,然后再轉換成PDF。其他的可以參考我當年寫的《PDG轉圖像、PDF的若干方法》一文。

當時我已經學會用UltrEdit32看PDF,所以第一眼就知道“打印大法”純屬扯淡,自然也不會去用它。而把PDG轉換成BMP再轉PDF,碰到插圖頁也就傻眼了,麻煩更多。

另外當時在那個BBS上,對從PDG轉換出來的PDF也開始進行一些美化嘗試,包括加掛書簽、分段頁碼、頁面透明、統一頁寬(“打印大法”可以統一頁面尺寸,但會出現白邊;其他方法在圖像尺寸不統一時,轉換后難以保證頁寬統一)、將bookinfo加入PDF等。不過這些功能都通過不同的軟件或插件完成,對技術要求較高,一本PDF書如果能同時具有上述兩項以上的技術,制作者就足以被人尊為“大俠”了。

由於當時PDG閱讀軟件太不給力,大多數人都選擇把PDG轉換成PDF再閱讀,我自然也不例外。但面對這樣的亂象,我感覺很難接受。所以開始結合自己對PDF的理解,開發了最初的Pdg2Pdf、FreePic2Pdf。這兩個軟件的最初版本功能盡管很弱,但還是引起了一些人的興趣,我也靠它們在readfree結識了酷酷、拽拽、車車、菜菜、仝仝、魚魚等人。

在朋友們(參見Pdg2Pic致謝名單)的幫助下,這兩個軟件不斷發展,將當時流行的PDF功能集為一體,最后基本上一統江湖。用前面說的某BBS上某人的評價:這兩個軟件最大的功勞,就是將某些人引以為傲的PDG轉PDF技術,搞得一文不值。

當時我將PDG轉PDF這個過程拆分成兩個軟件,有好幾個原因。其中一個重要原因,就是我感覺當時某BBS上PDF制作有點浮躁,與我理想中的PDF有很大差異,所以希望能夠提供一個中間過程,讓大家能暫停一下,修正一些錯誤,包括修正書簽(當時還沒有PdgCntEditor,只能對中間生成的FreePic2Pdf_bkmk.txt進行編輯)、加入擴展資料等。總之就是不希望用我的軟件,批量生產垃圾PDF。

后來隨着技術與軟件的發展,PDG轉PDF的人越來越少,轉換完了也多半不是給自己看,所以我才把這兩個軟件的功能合並到一起,用一個Pdg2Pic即可實現——垃圾不垃圾的也不管了,反正不是給自己用。當然批量功能是萬萬不會加的,以免被用於D版事業——還真有人找我談過,不止一次,連人見人愛、花見花開的RMB都被請出來做說客了。

在研究PDG轉PDF的同時,我也在被另外一個相反的問題困擾——無損提取PDF中的圖像,尤其是某些PDF電子雜志中的養眼圖像。當時其他人最常用的是Acrobat的“導出所有圖像”,但對於經常用UltrEdit32看PDF的人來說,用過一次就不會相信這個功能是無損的。其它工具軟件也或多或少存在一些問題。最后我是從xpdf提供的pdfp_w_picpaths得到啟發,開發了一個自用的小軟件,專門提取PDF中的圖像,並自動選擇存儲格式。當時這個小軟件也被我用來反編譯用PDG轉換成的PDF,以解決我當時清晰版PDG下載能力不足的問題。

同時在readfree混得越久,我接觸到的各種PDF也就越多,其它種種煩惱也接踵而至,包括PDF文件保護、水印、超鏈接、批量錯誤檢查,等等。最初解決這些煩惱的時候,我還是習慣性地使用UltraEdit32,並且為了促進這個軟件的使用,我還在readfree自掏腰包舉辦過一次競賽。

不過手工處理PDF多了,我也會煩的,所以萌生了開發批量處理軟件的念頭。最終就以最初那個導出圖像的小軟件為基礎,慢慢發展出了后來的PdfToy。

其實我自己做軟件一直有一個基本原則:只做別人沒有的,或別人沒做好的。發展到現在,我總結了一下PdfToy的主要創新點:

1、流過濾

時至今日,這個功能仍然是全世界獨此一家、別無分號。我也不太相信將來有哪家商業軟件公司會去開發這個功能,因為實在太危險了。免費軟件可以厚着臉皮規避用戶索賠,商業軟件則很難。不過要想用好這個功能,不去看《PDF Reference》是萬萬不行的。

2、圖像無損導出,並自動選擇合適的圖像文件格式

開發的時候這個功能沒人做,現在已經有其他人也在做了。不過能轉回PDG,尤其是分層PDG的應該還不多。

3、批量檢查

經常下載、手上有大把PDF的人都知道這個功能的重要性,但是能做到的軟件目前我就知道這么一個。雖然還有漏檢、誤報,不過已經是一種進步。要想對檢查出來的損壞PDF進行修復,除了“流過濾”外,UltrEdit32也是經常要用到的。

總之,從我自己的經歷來看,如果只是想“閱讀”PDF,Adobe PDF Reader等軟件夠用了;如果想進行簡單制作、編輯,Acrobat及其各種插件、Foxit差不多了;如果真想和PDF較勁,《PDF Reference》總要讀一讀的,至於平時是用UltrEdit32還是PdfToy的“文件結構”看PDF,就看規模和喜好了。我在很久以前針對網頁類電子書寫的《對E書制作的建議》一文中,曾經說過:“一個人如果只會用所見即所得的編輯器編輯網頁,那么他這輩子大概都只能在電子書制作的大門口打轉,很難登堂入室。原因無它:很多隱藏在代碼里的東西,在頁面上是看不出來的。”這話其實對PDF也適用,雖然聽起來感覺沒有前面別人對我說的那句話那么簡潔、有力。

(完)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM