Google Play 電子書新手上架(一)從 MD 到 PDF、ePub
在不久之前,我在 Github 上開放了《Java SE 6 技術手冊》,以 Markdown 的方式發佈,過了不久與朋友聊天時談到「你的東西雖然都在網路上,可我就是一個不見得隨時都能上網的人 … 像你放在 GitHub 上的電子書,我就很想把他拿來變成 PDF 檔案串成一本。」 這類需求我收過不少,我沒作過電子書,想想是蠻好玩的,只不過,既然要做,就讓過程有趣一些,想想 Google Play 電子書平台在台灣開放了,那就以在 Google Play 上架為目標好了,並且希望書籍的版面可以有我的編排風格,因而就有了 《Java SE 6 技術手冊》電子書,你可以在上頭 預覽一下編排成果,至於手機上的 ePub 與 mobi 效果 … mobi?是的,Google Play 雖然只可以上架 PDF 與 ePub,不過若想要可以在 Kindle 上觀看,可以使用 Calibre 從我的 ePub 轉換過去,效果也是不錯的,像是在 PC 版上的 Kindle 程式上效果會是 … 實際在我的 Kindle DX 上是長這樣(點圖放大)… 那我是怎麼製作的呢?這個流程其實很簡單,如果你在 Github 上已經有 Markdown 文件檔案,那就更簡單了 … Markdown 文件檔案正如一開始我說的,我在 Github 上已經有 了《Java SE 6 技術手冊》 的 Markdown 檔案了,我接觸 Markdown 算是比較晚的,當初編寫時,並沒有區分哪些是 Markdown 原有語法,哪些又是 Github flavored syntax,我調查了幾個方案,每個方案都不錯,但都有個問題,它們都有自己的 Markdown 擴充語法,我不想為了製作電子書再重新手刻一份,寫程式來作個 Regex 取代是也可以,不過我在想的是,有沒有可能更簡單的方式?我整理了一下我的需求就是 …
經過調查之後,我選擇了 MarkdownPad Pro,而為了支援目錄產生,我略為調整了一下 Markdown 文件的結構階層,基本上要以 # 定義出綱要階層,像是這樣 … # 第 3 章 語法入門 程式語言(Programming Language)本質上就是一個語言,語言的目的在於讓您與特定對象進行溝通,只不過程式語言的溝通對象是電腦 .... ## 3.1 第一個 Java 程式 先來解釋一下第 2 章中您所完成的「第一個 Java 程式」,如果您學過 C 語言,對於 3.1.2「給 C 使用者的第一個 Java 程式」可能會覺得比較親切 ... ### 3.1.1 解釋第一個 Java 程式 要對新手解釋第一個 Java 程式事實上並不簡單,因為一個最簡單的 Java 程式就會涉及檔案管理、類別 (Class)、主程式、命令列引數(Command line argument)等觀念... #### **範例 3.1 HelloJava.java** MarkdownPad Pro 可以設定語法支援 … 以及自訂 CSS … 接下來就是產生 PDF 的時候了 … 匯出為 PDFMarkdownPad Pro 可以直接匯出 PDF,如果你想要產生目錄,可以調整一下選項為: 選擇「Include document outline in PDF」 ,這樣匯出的 PDF,側欄就有目錄索引(點圖放大): 轉換 ePub 檔案PDF 在小型裝置上無法重排文字,如果用小型裝置看 PDF,就會陷入不停的縮放循環,Markdown Pad 沒有選項可以匯出為 ePub 檔案,這該怎麼辦呢?ePub 檔案本質上就是個 zip 檔,裏頭包括了一些 metadata、HTML 與相關素材,因此我想到的就是,如果試著從 HTML 轉過去,不知道效果好不好? MarkdownPad Pro 支援匯出為 HTML,產生的 HTML 檔案包括所有的樣式內容,我試著使用 Calibre 轉換為 ePub,效果不錯,版面編排都沒有走掉,不過,Google Play 會說「錯誤:無法為 ePub 掃描病毒」… 原因在於 MarkdownPad Pro 匯出的 HTML,每個 如果在EPUB裡頭要做<a href="localfile">這樣的事,連結的的檔案都應該在<spine>中被宣告,如果你不希望檔案在順著翻頁中出現,就設定為linear="no" 如果你瞭解如何編寫 ePub,應該會知道該怎麼做,如果不瞭解,那想要讓 Google Play 吃下你的 ePub 檔案,就是將 MarkdownPad Pro 匯出的 HTML 中,包裹著 要拿掉 如果希望你的 ePub 在轉換時可以建立目錄,那在使用 Calibre 轉換時,可以設定「目錄頁」: 轉換為 mobi 檔案Google Play 不支援 mobi,不過還是順便提一下 mobi 怎麼產生好了,實際上,如果你想產生 mobi 檔案,可以使用 Calibre 直接從 HTML 轉換過去,HTML 不需要做任何修改,目錄頁的產生方式與 ePub 相同。 介紹到這邊,你可以試著做份電子書了,如果覺得這篇文章還算有用,你可以在 Google Play 向 《Java SE 6 技術手冊》電子書 的便當價致敬!下一篇文章,會來說一下怎麼在 Google Play 上架以及一些注意事項 … |