ebook-convert - ebook-convert
ebook-convert input_file output_file [options]
轉換不同格式的電子書。
input_file 表示輸入檔案,output_file
表示輸出檔案。這兩者作為命令行參數必須指定到最前面。
輸出的電子書格式可由
output_file
的副檔名得到。同時
output_file 也可以是一種以 .EXT
為副檔名的特殊格式。在這種情況下,輸出檔案的名稱則使用輸入檔案的名稱。注意:檔案名不能以連字號作為開頭。如果
output_file
不含副檔名,那麼它將被視為一個目錄並將會在該目錄下產生
HTML
格式的「開放式電子書(OEB)」。這些檔案會被視為正常檔案而被輸出外掛所辨識。
在指定輸入和輸出檔案後,您可以自訂特定的轉換選項。根據輸入和輸出檔案的類型不同可用的轉換選項也不同。如需取得針對輸入和輸出檔案的幫助,請在命令行中輸入
-h。
對於轉換系統的完整文件請查閱
电子书转换
每当向具有它们自己空间的:command:
`
ebook-convert`传递参数时,用引号括起这些参数。例如:
"/some path/with spaces"
選項以及選項的預設值都取決於輸入
和輸出格式,所以您應該經常檢查
ebook-convert myfile.input_format myfile.output_format -h
以下是一些常見轉化的選項,接著
是特定輸入輸出的選項
- •
- 輸入選項
- •
- 輸出選項
- •
- 介面外觀
- •
- 探索式處理
- •
- 搜尋與取代
- •
- 結構偵測
- •
- 目錄
- •
- 詮釋資料
- •
- 除錯
- --input-profile
- 指定輸入設定檔。輸入設定檔會提供轉換系統關於如何轉譯輸入檔案中各類資訊的方式。例如關係解析度的長度(以像素計的長度)。選擇有:
cybookg3, cybook_opus, default, hanlinv3, hanlinv5, illiad, irexdr1000,
irexdr800, kindle, msreader, mobipocket, nook, sony, sony300, sony900
- --list-recipes
- 列出內建食譜名稱。您可以從內建食譜建立電子書,就像:ebook-convert
"Recipe Name.recipe" output.epub
- --output-profile
- 設定輸出設定檔案。輸出設定檔案可以讓轉換系統針對指定的裝置最佳化文檔(例如透過根據裝置螢幕大小縮放圖片)。在某些情況下,可以用輸出設定檔案對特定裝置最佳化輸出,但幾乎沒有必要。可選項有:cybookg3,
cybook_opus, default, hanlinv3, hanlinv5, illiad, ipad, ipad3, irexdr1000,
irexdr800, jetbook5, kindle, kindle_dx, kindle_fire, kindle_oasis,
kindle_pw, kindle_pw3, kindle_scribe, kindle_voyage, kobo, msreader,
mobipocket, nook, nook_color, nook_hd_plus, pocketbook_inkpad3,
pocketbook_lux, pocketbook_hd, pocketbook_900, pocketbook_pro_912, galaxy,
sony, sony300, sony900, sony-landscape, sonyt3, tablet, generic_eink_hd,
generic_eink_large, generic_eink
用來控制匯入 mobi
的檔案處理選項
- --input-encoding
- 指定輸入文件的字元編碼。如果設定這個選項就會覆蓋任何由文件本身宣告的編碼。尤其當文件沒有宣告任何編碼或文件所宣告的編碼有誤時會很有幫助。
用來控制輸出 epub
處理的選項
- --dont-split-on-page-breaks
- 關閉按分頁符切割。預設情況下,程式會按分頁符將輸入檔案切分割為多個檔案。由此程式可以使用較少的電腦資源來解析和輸出結果。當然分割操作會增加處理時間,如果輸入檔案含有較多的分頁符,請關閉此功能。
- --epub-flatten
- 這個選項只有在您想把
EPUB 檔案用在 FBReaderJ
上時才需要。它會將
EPUB
內的檔案系統扁平化,將所有的檔案放在最上層。
- --epub-inline-toc
- 插入行內目錄,會成為主要書本內容的一部分。
- --epub-toc-at-end
- 將插入的行內目錄放置在書本結尾而非開頭。
- --epub-version
- 要產生的 EPUB
檔案版本。EPUB 2
是最具廣泛相容性的,只有在您確實需要的情況下才使用
EPUB 3。
- --extract-to
- 解壓EPUB檔案的內容到指定資料夾。請注意,該資料夾的內容會先被清空。
- --flow-size
- 將大於該大小 (以
KB 為單位) 的 HTML
檔案分割。由於很多
EPUB
閱讀器無法開啟巨大的檔案,故此功能十分有用。預設值
260KB 是 Adobe Digital Editions
的檔案大小要求。設定為
0
來停用大小為基準的分割。
- --no-default-epub-cover
- 通常如果匯入的檔案沒有封面,您也未指定,將會產生一個帶有標題、作者等資訊的預設封面。核取這個選項可以停用產生預設封面。
- --no-svg-cover
- 不使用 SVG
做為書本封面。這個選項是用在您的
EPUB 要用在不支援 SVG
的裝置上時,像是 iPhone
或 JetBook
Lite。沒有這個選項,在前述裝置上會以空白頁面來顯示封面。
- --preserve-cover-aspect-ratio
- 當使用 SVG
封面時,該選項會導致封面平鋪滿有效的屏幕區字段,但仍會保持它的縱寬比(寬度和高度的比例)。意思就是說,這可能會在圖像頂邊或底邊處產生空白邊界,但是圖像本身不會被扭曲變形。不選該選項的話,圖像可能會產生輕微的扭曲變形,但優點是不會出現空白邊界。
- --pretty-print
- 如果開啟本選項,輸出外掛將盡量輸出人類可讀的內容。這個選項對於一些輸出外掛可能不起作用。
- --toc-title
- 用於任何產生的行內目錄頁的標題。
用來控制介面外觀輸出之選項
- --asciiize
- Transliterate Unicode characters to an ASCII
representation. Use with care because this will replace Unicode characters
with ASCII. For instance it will replace
"Pelé" with "Pele".
Also, note that in cases where there are multiple representations of a
character (characters shared by Chinese and Japanese for instance) the
representation based on the current calibre interface language will be
used.
- --base-font-size
- PTS中的基本字型大小。在產生的書籍中所有的字型尺寸將基於這個大小重新縮放。透過選擇更大的尺寸,可以使輸出中的字型更大,反之亦然。預設情況下,當值為0時,根據您選擇的輸出設定檔案選擇基本字型大小。
- --change-justification
- 更改文本對齊方式。
使用值 "left"
將轉換資源中所有的文本為左對齊。
(如:未對齊) 使用值
"justify "
將轉換資源中所有的未對齊的文本為對齊。使用值
"original"(預設)則不更改源檔案的對齊方式。請注意,僅部分輸出格式支持對齊方式。
- --disable-font-rescaling
- 關閉字體縮放功能。
- --embed-all-fonts
- 嵌入輸入文件中引用到但未嵌入的字型。軟體會在您的系統中尋找這些字型,找到了就嵌入。字型嵌入只有當您的目的格式支援才有用,例如
EPUB、AZW3、DOCX 和
PDF。請保證您擁有在文件中嵌入字型的合適授權。
- --embed-font-family
- 在書中嵌入指定字型。這指定了書中使用的「基礎」字型。如果輸入檔案自己指定了字型,就有可能覆蓋這個基礎字型。您可以使用過濾樣式資訊的選項來去除輸入檔案的字型。注意,字型嵌入只在一些輸出格式中有用,主要是
EPUB、AZW3 和 DOCX。
- --expand-css
- 預設情況下,calibre
將使用各種CSS屬性的簡寫形式,如邊距、填充、邊框等。此選項將使用完整的展開形式。注意,在產生EPUB檔案時,由於Nook不能處理速記CSS,所以將輸出設定檔案設定為Nook設定檔案中的一個,CSS總是被展開的。
- --extra-css
- CSS 樣式表或原生 CSS
的路徑。這個 CSS
會添加到來源檔案的樣式規則中,因此可以用來覆蓋那些規則。
- --filter-css
- 以逗號分隔的 CSS
屬性列表,將移除所有
CSS
樣式規則。這是非常有用的,如果存在的一些樣式信息,防止覆蓋您的的設備上的樣式信息。例如:字體系列,顏色,左邊距,右邊距
- --font-size-mapping
- 將 CSS
字型名稱映射到字型大小(以
pts
計)。舉例來說您可以設為
12,12,14,16,18,20,22,24。這些設定值的對應會從
xx-small 到
xx-large,最後一個大小就會是最大的字型。字型縮放演算法會使用這些大小來適當的縮放字型。預設使用的映射方式是以您所選擇的輸出設定檔為準。
- --insert-blank-line
- 在章節之間插入空行.
如果來源檔案不使用章節標記
(<p> 或 <div> 標記)
本選項將不起作用。
- --insert-blank-line-size
- 設定插入的空白列高度
(以 em
計)。在段落之間的高度會是這裡設定的兩倍。
- --keep-ligatures
- 保留輸入文件中的「印刷連字」。所謂「印刷連字」是指對於ff,
fi,
fl之類的字母組合的一種特殊的展示方式。大部分閱讀器在使用預設字體時無法支持「印刷連字」,所以常常無法正常顯示。預設情況下,calibre會把「印刷連字」轉換成對應的字母組合。本選項用於選擇保留「印刷連字」。
- --line-height
- pt
行高。控制兩行高度距離。僅僅適用於未定義行高的元素。大多數情況下,最小行高值更加有用。預設不進行行高操控。
- --linearize-tables
- 有些設計不良的檔案會使用表格來控制頁面文字的排版。在轉換這些檔案時常會發生文字超出頁面的問題。這個選項會將表格的內容讀取出來,並重新以直線的方式呈現它。
- --margin-bottom
- Set the bottom margin in pts. Default is 5.0. Setting this
to less than zero will cause no margin to be set (the margin setting in
the original document will be preserved). Note: Page oriented formats such
as PDF and DOCX have their own margin settings that take precedence.
- --margin-left
- Set the left margin in pts. Default is 5.0. Setting this to
less than zero will cause no margin to be set (the margin setting in the
original document will be preserved). Note: Page oriented formats such as
PDF and DOCX have their own margin settings that take precedence.
- --margin-right
- Set the right margin in pts. Default is 5.0. Setting this
to less than zero will cause no margin to be set (the margin setting in
the original document will be preserved). Note: Page oriented formats such
as PDF and DOCX have their own margin settings that take precedence.
- --margin-top
- Set the top margin in pts. Default is 5.0. Setting this to
less than zero will cause no margin to be set (the margin setting in the
original document will be preserved). Note: Page oriented formats such as
PDF and DOCX have their own margin settings that take precedence.
- --minimum-line-height
- 最小行高,元素字體計算值的百分比。calibre
將保證行中所有元素至少有此高度,無論輸入文件如何定義。設為零即禁用。預設
120%。首選項中也有此設定,請注意。否則可能出現雙倍行高,達
240%。
- --remove-paragraph-spacing
- 移除段落之間的空行.
同時設定段落縮進為1.5em.
如果源檔案不使用段落標記
(<p>或者<div>標籤)程序將不執行段落空行移除.
- --remove-paragraph-spacing-indent-size
- 當 calibre
移除段落間的空白列時,它會自動設定段落縮排,以確保能容易的辨別段落。這個選項控制了縮排的寬度
(以 em
計)。如果您將這個數值設定為負值,則會使用輸入檔案中所指定的縮排,亦即,calibre
不會改變檔案的縮排。
- --subset-embedded-fonts
- 嵌入所有字體中用到的字。每種嵌入字體縮減到只包含文件中用到的字型。這能減小字體檔案的體積。在嵌入某個特別大的,包含大量未使用字的字體時有用(如中文)。
- --transform-css-rules
- 包含轉換本書中
CSS
樣式規則的檔案路徑。建立這樣一個檔案的最簡單方法是在
calibre GUI
中使用精靈建立規則。在「介面外觀
->
轉換風格」的轉換對話框部分存取它。
一旦建立規則,就可以使用「匯出」按鈕將它們儲存到檔案中。
- --transform-html-rules
- 包含轉換本書中的HTML的規則的檔案的路徑。建立這樣一個檔案的最簡單方法是在
calibre圖形使用者介面中使用嚮導建立規則。在「外觀->轉換HTML」的轉換對話框部分存取它。一旦建立規則,就可以使用「匯出」按鈕將它們儲存到檔案中。
- --unsmarten-punctuation
- 轉換各種形式的引號、破折號和省略號到它們的標準形式。
使用一般樣式修改文件文字與結構。預設為停用。使用
--enable-heuristics
啟用。個別動作可以
--disable-* 選項停用。
- --disable-dehyphenate
- 分析整份檔案的連字符。會使用檔案本身做為字典以便判斷連字符應該保留或刪除。
- --disable-delete-blank-paragraphs
- 當每個段落之間存在空白段落時將它們從檔案中移除
- --disable-fix-indents
- 將以多個不中斷空白字元組成的縮排轉換為
CSS 縮排。
- --disable-format-scene-breaks
- 對齊左對齊的小節分節符。把多個空白行表示小節分節符取代為水平橫線。
- --disable-italicize-common-cases
- 尋找代表斜體的一般文字和圖案並將它們斜體化。
- --disable-markup-chapter-headings
- 檢測未格式化的章節標題和子標題。把它們從二級標題
(<h2>)
標籤轉換為三級標題
(<h3>)
標籤。這個選項不會創建目錄,但可以與文件結構檢測功能一起使用並創建目錄。
- --disable-renumber-headings
- 查找順次出現的<h1>或<h2>標籤。這些標籤被重新編號以防止在章節頭部中間斷開。
- --disable-unwrap-lines
- 決定某行是否為段落內的換行時,使用標點符號和其它格式做為線索。
- --enable-heuristics
- 啟用探索式處理。在需要使用任何探索式處理選項時都必須先啟用這個選項。
- --html-unwrap-factor
- 決定一行字元是否能成為一個新的段落的因子,有效值為
0 到 1
之間的小數,預設值是
0.4,即略小於半行的長度。如果文件中只有很少的行需要消除段落內換行,應當減小這個設定值。
- --replace-scene-breaks
- 把小節分節符取代為指定的文字。在預設情況下,會使用輸入檔案中的文字。
以使用者定義的形式修改文件文字與結構。
- --search-replace
- 包含搜尋和取代正規表達式的檔案路徑。該檔案必須包含正規表達式交替行後面跟著取代模式
(它可以是一個空行)。正規表達式必須是
Python
正規表達式的語法並且檔案必須是
UTF-8 編碼。
- --sr1-replace
- 用來取代以 sr1-search
找到的文字。
- --sr1-search
- 要以 sr1-replace
取代的搜尋模式 (
規則運算式 )。
- --sr2-replace
- 用來取代以 sr2-search
找到的文字。
- --sr2-search
- 要以 sr2-replace
取代的搜尋模式 (
規則運算式 )。
- --sr3-replace
- 用來取代以 sr3-search
找到的文字。
- --sr3-search
- 要以 sr3-replace
取代的搜尋模式 (
規則運算式 )。
控制文件結構的自動偵測。
- --chapter
- XPath
運算式用於偵測章節標題。預設考慮使用
<h1> 或 <h2>
標籤來涵括「章節」,「書籍」,「節選」,「前言」,「結束語」,或者使用任何標籤包含級別
=「章節」的「部分」做為章節標題。使用的運算式必須評估元素列表。要停用偵測章節,請使用運算式「/」。請參閱
calibre 使用者手冊中的 XPath
教學瞭解使用此功能的更多幫助。
- --chapter-mark
- 指定如何標記偵測到的章節。「pagebreak」(分頁)會在每個章節前插入分頁符號。「rule」(水平線)會在每個章節前插入水平線。「none」(沒有)會停用章節的標記。「both」(兩者)則會同時加入分頁符號及水平線來標記章節。
- --disable-remove-fake-margins
- 有些文件通過在每一頁上指定左右頁邊距來指定頁面邊框大小。
Calibre
會嘗試檢測並移除這些頁邊距。有時候
Calibre
會錯誤的移除不應該移除的頁邊距,在這種情況下,您可以禁用這項功能。
- --insert-metadata
- 將書籍詮釋資料加入到書籍的開始處。如果您的電子書閱讀裝置不支援顯示和搜尋詮釋資料功能,該功能可以有所幫助。
- --page-breaks-before
- XPath
運算式。換頁符號要插入在指定元素之前。要停用則使用運算式:/
- --prefer-metadata-cover
- 使用從來源檔案中檢測到的封面檔案.
- --remove-first-image
- 移除輸入電子書的第一張圖片。當輸入文件已有封面圖片但不想將它當作封面時很有用。在這個情況下,如果您在
calibre
中設定了封面,而您沒有指定這個選項,輸出的文件最後會有兩張封面。
- --start-reading-at
- 用於偵測文件中開始閱讀位置的
XPath
運算式。某些電子書閱讀器
(以 Kindle 為代表)
使用此定位標識來開啟書籍。請參閱
calibre 使用者手冊中的 XPath
教學了解使用此功能的更多幫助。
控制目錄頁的自動產生過程。預設情況下,如果來源檔案有目錄頁,它會優先使用而不自動產生。
- --duplicate-links-in-toc
- 在基於輸入文件中的連結建立目錄時,允許建立重複項目。即在目錄中允許出現名稱重複的項目,但它們指向文件中不同的位置。
- --level1-toc
- 指定應添加到目錄級別1的所有標籤的
XPath
表達式。如果指定此項,它會優先於其他自動檢測形式。可查閱
calibre 使用者手冊中的 XPath
向導。
- --level2-toc
- XPath
運算式指定所有標籤應添加在二級目錄表。每個條目加入到一級目錄條目下。請參閱
calibre 使用者手冊中 XPath
教學的例子。
- --level3-toc
- XPath
運算式指定所有標籤應添加在三級目錄表。每個條目加入到二級目錄條目下。請參閱
calibre 使用者手冊中 XPath
教學的例子。
- --max-toc-links
- 插入目錄頁的連結最大數量。設定為
0
代表停用。預設值:50。只有在偵測到的章節數目少於這個臨界值時才會把連結加入目錄頁中。
- --no-chapters-in-toc
- 不將自動偵測到的章節增加到檔案目錄。
- --toc-filter
- 將標題符合指定規則運算式的項目自目錄頁中移除。符合的項目以及它們的子項目都會一起被移除。
- --toc-threshold
- 如果偵測到的章節少於這個數目,就會把連結加到目錄頁中。預設值:6
- --use-auto-toc
- 一般而言,如果來源檔案已經有目錄,它會被優先用於自動產生的目錄中。使用這個選項,則會強制使用自動產生的目錄。
設定輸出的詮釋資料選項
- --author-sort
- 當以作者來排序會用這個字串來排序.
- --authors
- 設定作者。多個作者應以半形&分隔。
- --book-producer
- 設定書本的出版商。
- --pubdate
- 設定發佈日期
(假定在本地時區,除非明確指定時區)
- --rating
- 設定評等。應該為從
1 到 5 的數字。
- --read-metadata-from-opf, --from-opf, -m
- 從指定的 OPF
檔案讀取詮釋資料。從這個檔案讀取的詮釋資料將會覆蓋原始檔案中的所有詮釋資料。
- --series-index
- 這個書本在系列裡的索引。
- --tags
- 設定書本的標籤。多個標籤之間請用逗號隔開。
- --timestamp
- 設定書本時刻戳記
(已不在任何地方使用)
轉換至偵錯模式的相關選項
- --debug-pipeline, -d
- 在轉換過程的不同階段分別儲存輸出到指定目錄。如果您不確定在哪個階段出了問題,這個選項非常實用。
- --verbose, -v
- 詳細程度。指定多次來提高詳細程度:指定兩次是最詳細,一次是中等,零次是最簡略。
Kovid Goyal
Kovid Goyal