Quantcast
Channel: 簡睿隨筆
Viewing all articles
Browse latest Browse all 897

文字檔轉換為Kindle MOBI檔的工具:m2m的Step-by-step操作步驟 (更新:直排功能)

$
0
0

最近利用閑暇時間把2015年寫的m2m.exe(參考:KindleGen與Markdown轉換為Mobi的Kindle電子書工具:m2m.exe)用Delphi XE 10.2.3改寫,把文字格式自動轉換為Markdown格式的功能也加進去,對於不熟悉正規運算式轉換語法的朋友們應該會覺得簡單很多。以下是m2m的簡單使用說明。

m2m.exe的用途

m2m.exe代表的是「Markdown To MOBI」的意思,不是物聯網的Machine-to-machine,主要用來把文字格式的電子書轉換成Kindle使用的.MOBI格式。

我們搜尋到的電子書通常是文字格式(.txt),為了更好的閱讀體驗便可以利用m2m.exe將之轉換為.MOBI格式,除了章節標題字體變大,也能有Kindle的目錄巡航等增強功能,產生出.MOBI檔後會複製到網路磁碟機資料夾(我用的是Dropbox)並上傳到網路磁碟,再用IFTTT.com的郵寄操作(由Dropbox傳送到Kindle的接檔信箱),最後Kindle就能收到電子書。

以下是逐步執行的操作步驟。

1. 準備好電子書

首先準備好要轉換的電子書文字檔(範例中使用的三國演義.txt可由此處下載)。

如果文字檔第一行是書名,第二行是作者,則讀檔時會自動填入輸入欄位。
01

2. 點選電子書檔案

執行m2m.exe,按書名輸入欄位右方的開啟按鈕並點選三國演義.txt,點選後書名輸入欄位會出現電子書的檔名路徑。

02

3. 開始讀檔

如果要轉換為Markdown格式則勾選【讀檔時轉換為Markdown格式】,若選用檔案已經轉換過則不勾選。按〔1.讀檔〕開始讀檔,有勾選轉換者一併轉換格式。

03

轉換章節標題的設定在安裝資料夾的m2m.ini,可以按右上方的齒輪按鈕用記事本開啟m2m.ini,找到 [RegularExpressions]:

[RegularExpressions]
^正文 (.*)=$1
^第(.*)章 (.*)=## 第$1章 $2
^第(.*)章(.*),(.*)=## 第$1章 $2·$3
^第(.*)章(.*),(.*)集=第$1章 $2·$3
^第(.*)卷 (.*) 第(.*)章 (.*)=## 第$1卷 $2 第$3章 $4
^第(.*)卷(.*)第(.*)章(.*)=## 第$1卷 $2 第$3章 $4
^第(.*)卷 (.*)=# 第$1卷 $2
^卷(.*) (.*) (.*)章 (.*)$=# 第$1卷 $2\n## 第$3章 $4
^第(.*)章 (.*),(.*)=## 第$1章 $2·$3
^第(.*)章 (.*),(.*)=## 第$1章 $2·$3
^第(.*)章 (.*)=## 第$1章 $2
^第(.*)章:(.*)=## 第$1章 $2
^第(.*)集 (.*)=## 第$1集 $2
^第(.*)節 (.*)=## 第$1節 $2
^第(.*)回 (.*)=## 第$1回 $2
^第(.*)回:(.*)=## 第$1回 $2
^楔子 (.*)=## 楔子 $1
(.*)本帖最後由(.*)編輯(.*)=
^更新時間(.*) 字數:(.*)$=

設定中使用到的運算式符號說明:

  1. ^表示每行開頭
  2. (.*)表示數目不定的任意文字,「第(.*回)」運算式則「第一回」、「第四十八回」等都符合
  3. 等號右邊的\$1、\$2表示等號左邊符合的第一個與第二個內容,例如「第一回」的「一」、「第四十八回」的「四十八」就是\$1
  4. ^第(.*)回:(.*)=## 第$1回 $2的意思是把符合等號左邊的運算式轉換成等號右邊的內容,例如文字內容「第四十八回:宴長江曹操賦詩,鎖戰船北軍用武」符合這個運算式,則「四十八」就是右邊的\$1,「宴長江曹操賦詩,鎖戰船北軍用武」就是\$2,轉換後就變成「## 第四十八回 宴長江曹操賦詩,鎖戰船北軍用武」;轉換後的兩個半形井號表示標題二,字體會變大

標題有個奇怪的問題,文字中有半形或全形逗點時,在.MOBI的內容會被截斷,例如「宴長江曹操賦詩,鎖戰船北軍用武」會變成「宴長江曹操賦詩,」或「宴長江曹操賦詩?」,因此m2m.exe會把標題中的逗點變成黑點以避開這個問題。

如果電子書的標題樣式不在現有的設定中,請自行依格式添加在後。

3.1. 轉直排與空兩格

0.03版增加了段落開頭插入兩個全形空白與直排功能,只要勾選就會產生對應的結果。

因為直排時有些標點符號無法正確的轉直,因此m2m.ini增加了轉換標點符號的設定,其中[SymbolReplace_Horizental]是轉換橫排的標點符號,包括半形逗點轉成全形逗點等,[SymbolReplace_Vertical]則是直排時的標點符號轉換,其中冒號必須換成橫的冒號,但宋體位置不太美觀,但黑體卻又正常…。

vertical

vertical2

4. 讀檔後

讀檔後在下方的訊息框會顯示執行訊息,若有勾選自動轉換Markdown,則會額外產生同名的.markdown檔案,按下勾選欄位右方的按鈕會以記事本開啟三國演義.markdown。

如果檢查.markdown後手動做了調整,那麼要重新選取檔案,選取三國演義.markdown,不勾選自動轉換,再按〔1.讀檔〕以重新讀入修改後的Markdown檔。

04

5. 產生設定檔

讀檔後按〔2.產生設定檔〕以產生需要的各式檔案,此時右下方會出現檢視設定檔的多個按鈕。

05

產生的檔案說明如下:

檔案 檔案範例 說明
書籍內容的HTML檔 mybook.html HTML是書籍本文的內容。一本書可以使用多個HTML檔,但為方便我只使用一個HTML檔
HTML使用的樣式表 style.css HTML檔若有使用CSS樣式就需要本檔
目錄的HTML檔 toc.html 形成目錄(Table of Contents, toc)的網頁內容
目錄的索引檔 toc.ncx Kindle 「前往」出現的選單(ncx是Navigation Control file for XML applications)
封面圖片 mybook.jpg 封面圖片可不使用,但缺少時KindleGen較不穩定
控制組合的OPF檔 mybook.opf OPF是Open Packaging Format,負責將上述檔案組合起來以形成最終的Mobi檔
執行的批次檔 mybook.bat 用來產生MOBI檔的批次檔,叫用kindlegen.exe並拷貝到輸出目錄

真正執行產生.MOBI的是mybook.bat,若有需要做其他操作的話,可以編輯安裝目錄裡的template.bat,自行修改內容,則重新產生的mybook.bat就會是修改後的內容。

6. 檢視產生的檔案

為確認需要的檔案都有正常產生,可點擊右下方的按鈕來檢視其內容,尤其是 toc.ncx 必須正確產生目錄標題,否則無法產生.MOBI檔。

06

7. 產生MOBI檔

最後按〔3.產生MOBI檔〕則會開啟命令提示字元(DOS視窗)執行mybook.bat,再以下列命令產生MOBI檔:

[安裝目錄]\kindlegen.exe mybook.opf -c1 -dont_append_source

kindlegen產生出的檔名固定為「mybook.mobi」,在mybook.bat裡複製到輸出目錄\書名_作者.mobi。

07

8. 檢視.MOBI檔

最後按右下角的預覽MOBI檔可以用設定的預覽程式來開啟輸出目錄裡的「書名_作者.mobi」。預覽程式必須另行安裝,可以用Kindle for PC或Kindle Previewer,透過m2m.ini設定好執行檔路徑。

08

9. 上傳到Kindle接收信箱

Kindle的【設置】→【我的帳戶】→【發送至Kindle 電子郵件地址】可以查到信箱,或由下列網址查詢:

  • 美國亞馬遜:https://www.amazon.com/myk
    amazon
  • 中國亞馬遜:https://z.cn/myk
    z.cn

<

p>瀏覽ifttt.com並登入後,搜尋「Send files from Dropbox to your Kindle」再設定成自己的Dropbox資料夾與接收信箱,日後只要把.MOBI輸出到Dropbox指定的資料夾,IFTTT.com就會自己寄信到Kindle接檔信箱。

  1. m2m.ini設定
    m2m.ini可以設定下列選項,以符合個別環境:

settings

設定參數 說明
KINDLEGEN 要指定其他位置的kindlegen.exe時使用,預設直接使用安裝目錄裡的檔
LEVEL2_MAX_COUNT 標題二章節的最多數目
OPTIONS 預設的壓縮等級
MOBI_FOLDER MOBI檔的輸出目錄
TEXT_FOLDER 電子書文字檔的存放目錄
HTML 讀mybok.html的編輯器
TEXT 讀文字檔的編輯器
MOBI 讀.MOBI檔的編輯器

如何由橫排改為直排

要產生成由上到下的直排

相關連結

版本 釋出日期 更新說明 下載連結
0.02 2018/09/29 由Lazarus改寫為Delphi XE 下載
0.03 2018/10/02 段落空兩格與直排 下載

##

您可能也會有興趣的類似文章


Viewing all articles
Browse latest Browse all 897

Trending Articles