1. 程式人生 > >PDF轉EPUB格式電子書經驗總結

PDF轉EPUB格式電子書經驗總結

根據本人將PDF轉換為EPUB電子書的經驗,總結整理了這篇文章,因本人水平有限,難免有錯誤和不足之處,望大家及時批評指正。 寫這篇文章時,假定讀者已經會使用文中所列出軟體的基本操作,比如怎樣用Notepad++開啟HTML檔案,如何使用PDF Password
Remover(這個軟體很簡單,稍有電腦操作基礎的人開啟後就知道怎麼做)。另外讀者需要對ePubBuilder的操作比較瞭解。 本文主要討論圖文並茂、非掃描版的PDF文件。對於掃描版PDF檔案,如果是漫畫一類的,可以直接用Adobe
Acrobat轉化為圖片製作EPUB,如果是文字形式的掃描電子書,可以使用OCR軟體識別以轉化成文字(ABBYY
FineReader識別效果相對較好),但OCR識別中文準確率不夠高,部分無法識別的漢字需要人工輸入。對於純文字形式的PDF,直接儲存為TXT,然後轉換就可以。如果文字無法複製,可以用PDF
Password Remover解密,具體請參考本文的PDF解密部分。 以下摘自百度百科: PDF是Portable Document Format(便攜檔案格式)的縮寫,是一種電子檔案格式,與作業系統平臺無關,由Adobe
公司開發而成。PDF
檔案是以PostScript語言圖象模型為基礎,無論在哪種印表機上都可保證精確的顏色和準確的列印效果,即PDF會忠實地再現原稿的每一個字元、顏色以及圖象。 PDF主要由三項技術組成:   · 衍生自PostScript,可以說是PostScript的縮小版;   · 字型嵌入系統,可使字型隨檔案一起傳輸;   · 資料壓縮及傳輸系統。 PDF檔案結構主要可以分為四個部分: 1.首部 2.檔案體 3. 交叉引用表 4.尾部 一方面,PDF格式作為印前出版的工業標準,由於其排版相對複雜,檔案內容也有比較複雜,比如PDF可以內嵌特殊字型,可以很自由的儲存每個圖片、文字物件的絕對位置,而另一方面,EPUB採用類似網頁格式的XML標準,即使增加了CSS樣式表的支援,排版效果還是遠難及PDF,因此想把排版優良的PDF電子書完美地轉換成EPUB格式,相對比較複雜。一些正版收費閱讀器會推出一些排版質量很高的EPUB,我試用過,排版確實不錯,但是那只有在非常精心的製作下才能得出,對於我們轉換PDF的人來說,是很不現實的,而且那些電子書一般收費是比較高的,應該還有授權限制,不可能共享出來讓大家都能用(這些檔案只有在特定應用中登入特定賬號後才能開啟,複製給別人就打不開了)。 可能要用到的所有軟體: PDF Password Remover 3.0 Adobe Acrobat Chrome瀏覽器(其他瀏覽器應該也行) Notepad++ Microsoft Word WPS 數碼照片壓縮大師 ePubBuilder 大致思路是首先解除密碼限制,然後匯出為HTML格式,去除無關資訊、修正亂碼等,然後用ePubBuilder匯入,完善書籍資訊,分章節,自己用閱讀器開啟檢查有無嚴重錯誤,然後釋出。為什麼要轉為HTML,因為這種格式完全開源,好處理,出錯率低,也和EPUB內部儲存格式一致。 具體步驟如下: 首先指明一點,以下的步驟最後要達到的排版上的目標是:所有圖片都能正常顯示,但都預設靠左(有些閱讀器可以設定圖片強制居中顯示)。文欄位落和圖片分開,文字不會環繞圖片,也就是不會左邊一半是圖,右邊一半是文字。雖然那樣效果更好,但難度太大,不易實現。 1、如果加密了,使用PDF Password Remover移除PDF檔案加密限制。加密問題後面還會具體討論。
2、用Acrobat開啟,選單中
檔案,另存為(或匯出),選擇生成HTML3.2格式(無CSS)。生成的時候可能比較慢,一定要耐心等,不要亂點滑鼠,容易宕機。根據經驗,這裡不選擇HTML4.0(CSS1.0),儘管後者有CSS的支援,排版按理說會更好,但事實上匯入ePubBuilder中出錯率大增,效果也並不好。 3、在瀏覽器中檢視,有沒有明顯的錯誤,比如根本打不開,全是亂碼,沒有中文,沒有圖片等。全是亂碼可能是HTML編碼的問題,沒有中文可能是PDF字型、編碼的問題,沒有圖片或許是HTML連結的問題,解決起來很麻煩,也不一定對。如果真遇到這樣的嚴重問題,我也無能為力了。不過幸運地是,只要PDF比較正常,不會出現這種問題。 這裡簡要說明一下,HTML一般由原始檔和資料資料夾組成,如“攝影.html”和對應資料夾“攝影_files”,資料夾也有可能是其他名稱,如images,原始碼和資料資料夾通常要放在同一父資料夾下,資料夾中主要為圖片等多媒體檔案,可能還有CSS樣式表、Javascript指令碼一類的東西,在PDF匯出的HTML3.2中,基本上只會是圖片。而html原始檔其實是文字檔案,用記事本就可以開啟,後面我們會用Notepad++直接操作HTML原始檔。 4、從這一步開始,我們需要修正HTML的各種問題,會涉及一些可能不好懂得知識。對於瞭解HTML和正則表示式的人,應該能很快明白。不懂的話照著做就可以了。如果你在上一步開啟HTML時感覺排版已經很好了,而且沒有多餘的東西,可以直接跳過HTML修正的這些步驟,直接匯入到ePubBuilder看效果如果。 5、用Notepad++開啟HTML檔案,我們可以看到其原始碼如圖。
6、替換刪去html原始碼中align程式碼以去除圖片文字指定的對齊,使其預設左對齊。具體方法是,按Ctrl+H,或選單中  搜尋 -
替換,“查詢模式”為“普通”,“查詢目標”為align="center",,“替換為”這個框不填,勾選“迴圈查詢”,然後點選“全部替換”。如果一次處理多個檔案,則全部開啟,點選“替換所有開啟檔案”即可。同樣,“查詢目標”分別改為align="left",align="right",align="justify",全部替換。再次開啟HTML時,你會發現原先位置有些混亂的圖片看上去好多了。如果有些圖片確實是居中更合適,可以不全部替換,或者在後文還會利用Word來修改。 這個版式就有點亂,原因就在於有些圖片靠右對齊,有些靠左,還有的文字設定了兩端對齊。
7、替換刪去頁首等干擾圖文(使用正則表示式) 一般的圖書都會有頁首和頁尾,例如圖中紅色框出的部分,還有像頁碼一類的標註。這些資訊在生成EPUB後完全沒有意義,因為EPUB在不同情況下頁碼分佈並不一樣。瞭解Word的人知道,在圖書編輯時,頁首是可以批量編輯修改的,但是生成PDF之後頁首頁尾變成了分別獨立的物件,沒辦法同時刪除。 如果頁首是文字,將在下一步處理,原始碼中有可能文字採用的是轉義字元,看不懂的情況下也不便修改。如果頁首含有圖片,如圖中的數字02,需要通過HTML原始碼進行替換。方法如下。用Chrome和Notepad++同時開啟HTML檔案,在Chrome中右擊頁首圖片,審查元素,底下會有個顯示原始碼的視窗,看清width和height後面對應的表示圖片寬高的數字,切換到Notepad++,還是使用替換功能,首先把“查詢模式”改為“正則表示式”,取消勾選“匹配大小寫”,勾選“.
matches newline”,其他選項不變,查詢目標為 <[^<>]*IMG[^<>]*width="39"[^<>]*height="71"[^<>]*> 注意中間沒有任何空格,width和height後面的數字是剛剛在Chrome中看到的數字,然後全部替換,儲存檔案,但不要關閉Notepad++。這時,寬度和高度符合要求的圖片就沒有了。然後在Chrome中重新整理,看修改後有沒有問題,如果有問題,在Notepad++中撤銷更改,然後得針對實際情況具體分析(此處略去)。一般在Chrome中還能看到一些頁首沒有被替換掉,原因是他們的寬高可能與之前的有所差距,這時只需重複前面動作就行了。 採用轉義字元(形如& # 20154 ;)表示的漢字,很難看明白: 8、用word進一步編輯 這一步完成後HTML就會接近完美了,所以也很關鍵。用Word開啟HTML(不推薦其他軟體,因為包含整本書的HTML檔案一般很大,很多軟體開啟很容易宕機,如WPS、DreamWeaver,而Word2010在這方面優化的不錯,2003版的不清楚),開啟後可以全選修改字型等,然後替換,去除少量無法顯示的字元亂碼,即顯示為問號(同樣注意儘量不要把原文問號替換沒了),替換掉重複出現的網站資訊、廣告等,還有就是文字形式的頁首頁尾(再次強調,注意儘量不要把原文中和頁首相同內容替換沒了,Word中可以根據指定字型來替換,這樣比較方便),對於不是很規則的頁碼如:第x頁,這樣的資訊去除,則交給ePubBuilder來完成。然後用Word把圖文中排版不當的進行適度修改,不需要的目錄則去除,沒有嚴重問題即可。注意這裡有個問題,如果PDF比較完整,有目錄,要把目錄中對應頁碼刪除。就像這樣:前言………………………………………………………………1,這個第一頁在轉換為HTML時就已失去意義了,沒有必要保留。 另外此處注意一種常見的問題,就是個別文字是圖片形式儲存的,將在後文常見問題中詳細說明。 Word強大的替換功能,可以指定替換前後的文字格式。 9、如果有必要的話,優化HTML檔案,以便正確匯入ePubBuilder。 這一步事實上可以說應該還是ePubBuilder不夠完善造成的吧,用Word編輯儲存後的HTML檔案頭部會加入很多特殊資訊,如圖中<meta....>,還有綠色的<!--..........-->部分(在標準的HTML中這種形式的文字為註釋,刪除後沒有影響)等,另外還有圖片的連結問題。這些問題有時會影響ePubBuilder匯入,出現一些錯誤。如果出現了錯誤,請嘗試使用瀏覽器開啟另存,用Notepad++刪除綠色的<!--..........-->部分。 如果還是不行,使用用WPS新建文件(Word不行,WPS生成時會重新連結圖片,Word則不會),用瀏覽器開啟HTML,全選並複製網頁內容,貼上到WPS,儲存為HTML。此時HTML檔案會完全重新生成,但圖片可能會被WPS轉為png,佔用空間一般會增大,不推薦。 10、如果用了WPS重新儲存,請檢視HTML檔案的圖片資料夾大小,如果過大,有必要壓縮一下 壓縮方法如下: 用數碼照片壓縮大師新增資料夾,輸出jpg儲存到另一資料夾,然後用Notepad++開啟HTML原始碼,可以找到類似 <IMG 。。。 width="711" height="911" src="images/img_0.png"
。。。> 這樣的圖片標籤,然後用普通模式替換“.png”為“.jpg”。然後把圖片資料夾的png圖片刪除,將壓縮後的jpg移進去。最後用瀏覽器開啟後確認一下。 11、用ePubBuilder匯入,編輯書籍資訊,分章節,智慧排版等 看有沒有錯誤,有錯的話修改一下。前面可能還遺留了一個問題,頁尾形如“第x頁”的去除,可以使用刪除特徵行的功能實現。 這裡我還是提出ePubBuilder的一個缺陷。你可能會發現,原先的HTML排版很好,還有字型資訊等,但匯入後都沒有了,有些圖片也會有些小問題,比如我的HTML如圖,但匯入後,字型格式沒有了,文字、圖片居中沒有了而且原先在“攝影大師之道”左邊的那個紅框位置就完全亂了,這個我目前還沒有好的對策,期待著ePubBuilder功能繼續完善吧。 12、匯出EPUB,用掌上書苑或者其他檢視器再檢視一下是否正常。然後釋出,等著稽核通過拿書幣吧^_^。是不是覺得這書幣拿的格外開心呢? 容易出現的問題,我分析了以下,大致有這些吧: 一是PDF的加密版權保護。很多PDF由於涉及版權問題,採用了一定的加密手段,最嚴格的一種是開啟檔案時要求輸入密碼,如圖所示。對於這種情況,我們只能使用Advanced
PDF Password Recovery一類軟體暴力破解,這裡就不詳細介紹了,成功率不高,需要大量時間。 更常見的加密方式是,檔案可以開啟,但不能複製其中的文字,或者複製的是亂碼,這樣的情況,我們使用PDF Password
Remover一般就能很快移除加密限制,從而複製其中的文字。 二是PDF內嵌的字型。很多PDF內嵌一些字型,會導致複製出來出現亂碼現象。如果整個文件匯出的檔案錯字連篇,我也不知有什麼好辦法,但是如果只有少量錯字,還是可以手工修改的,或者某幾個字出錯,可以採用替換的方式解決,當然自動替換全部文字時很可能把正確的字給替換錯了。舉個例子,假設文中所有“的”字變成了“癿”,我們可以放心的替換回來,因為這個字很少見。但是如果“的”字全部變成了“白”字,盲目替換會把“明白”替換成“明的”,就出問題了。對於這樣的情況,確實沒有好辦法解決。這一點尤其要注意。 還有一種情況,個別文字的字體系統中沒有(通常是因為其他文字使用的字型不支援這幾個字,這幾個字就會換成其他字型),然後會被轉換成圖片,如圖。這就需要在Word中耐心一點手動改正了。 三是排版的問題。比如下面這邊排版精美的攝影電子書,圖文並茂,文字在圖片中間,轉換成HTML後會怎樣呢?最後如你所料,有些混亂。這個也不好解決,如果你想製作優質的書,那就在Word中手動修改吧^_^。(很可惜我實在沒有這般的耐心。) 還有一種情況,很奇特。在PDF中,文字也是一個個物件,通常一段字型相同的文字是一個物件。而每張圖片是一個物件。但是,PDF編輯器有個很有意思的地方,比如說,兩段文字原先是一個物件,你在其中插入一個空行,可能它就被分成兩個物件了,反過來,兩個同一性質的物件(都是文字或都是文字),靠得比較近時,又會自動併成一個物件。奇蹟就發生了。試想,下圖中假設中間的圖和下面的圖靠得很近,寬度也一致,然後就奇蹟般地組合成一個物件了,然後輸出的HTML中,他們成為了“連體嬰兒”,成了一張圖片,然後,你就不知道該怎麼安排旁邊那些描述性的文字了(除非手工又把圖片分割開)。所以只好希望讀者將就著看吧。哎,PDF轉EPUB的無奈在此也可見一斑了。