lisz-works

技術と興味の集合体

Calibre 電子書籍のフォーマット変換をコマンドで行うメモ

【スポンサーリンク】

本を読む女性

Calibreという電子書籍リーダーについてです。

コマンドラインのみで、電子書籍のフォーマット変換を行うためのメモです。

exeのパス

変換用のexeは、デフォルトなら下記パスに格納されています。

C:\Program Files\Calibre2\ebook-convert.exe

基本

なにも指定せずに変換する場合の基本文法です。

なおパスにスペースが入るものは、ダブルクォートで括る必要があります。

ebook-convert.exe [入力ファイル] [出力ファイル]

ヘルプオプションの使い方

よくあるアプリと違い、コイツのヘルプオプションは少し特殊です。

まず、ヘルプ自体は

-h
~ --help

のどちらかで参照する事ができます。

しかし「どこまで入力したか?」で、表示が異なります。

例えば

ebook-convert.exe -h

とした場合

  1. --version
  2. -h, --help
  3. --list-recipes

の3つのオプションについてしか説明がでませんが、

ebook-convert.exe input.epub output.pdf -h

とした場合、大枠だけでも

  1. 通常のオプション
  2. 入力オプション
  3. 出力オプション
  4. 外観ヒューリスティック処理
  5. 検索と置換
  6. 構造の検出
  7. 目次
  8. 書誌情報
  9. デバッグ

と、オプションの表示項目が変化します。

オプション

出力したものの引用です。

通常オプション

オプション:
--version プログラムのバージョン番号を表示して終了

-h, --help このヘルプメッセージを表示して終了

--list-recipes ビルトイン・レシピ名の一覧を表示。以下のようにしてビルトイン・レシピから電子書籍を作成できます。:
ebook-convert "Recipe Name.recipe" output.epub

--input-profile=INPUT_PROFILE
入力プロファイルを指定する。入力プロファイルは、変換のためのシステム情報を提供し、様々な入力文書の情報をどの
ように解釈するかを指定する。たとえば、解像度に依存する長さ(つまり、ピクセルごとの長さ)などがあります。選択
肢:cybookg3, cybook_opus, default, hanlinv3, hanlinv5,
illiad, irexdr1000, irexdr800, kindle, msreader,
mobipocket, nook, sony, sony300, sony900

--output-profile=OUTPUT_PROFILE
出力プロファイルを指定します。出力プロファイルは変換システムに、指定したデバイス毎のドキュメントの最適化(例
えば画面サイズに合わせた画像のリサイズなど)を指定します。特定のデバイス用の最適化を行うことも可能ですが、普
通はそこまで必要にはならないでしょう。選択肢:cybookg3, cybook_opus, default,
generic_eink, generic_eink_hd, generic_eink_large,
hanlinv3, hanlinv5, illiad, ipad, ipad3, irexdr1000,
irexdr800, jetbook5, kindle, kindle_dx, kindle_fire,
kindle_oasis, kindle_pw, kindle_pw3, kindle_voyage,
kobo, msreader, mobipocket, nook, nook_color,
nook_hd_plus, pocketbook_900, pocketbook_pro_912,
galaxy, sony, sony300, sony900, sony-landscape,
sonyt3, tablet

入力オプション

入力オプション:
入力ファイル azw3 の処理制御オプション

--input-encoding=INPUT_ENCODING
入力された文書の文字エンコーディングを指定します。このオプションを設定した場合、文書内で宣言されるエンコーデ
ィングは無視されます。特に、文書がエンコーディング宣言を行っていない場合や、エンコーディング宣言に問題がある
場合に有効です。

出力オプション

出力オプション:
epub出力処理をコントロールするためのオプション

--dont-split-on-page-breaks
改ページでのファイル分割をしません。通常、入力ファイルは自動的に改ページの部分で2つのファイルに分割されます
。これによりパースが速く、使用リソースの少ない電子書籍が出力されます。しかしながら分割作業は遅いので、ファイ
ルに大量の改ページがある場合は改ページでの分割をしないでください。

--epub-toc-at-end 本の最初ではなく最後にインラインの目次を挿入します。

--pretty-print 指定した場合は、出力プラグインはできる限り人が読めるような出力を生成しようとします。一部の出力プラグインには
、なにも効果がない可能性があります。

--flow-size=FLOW_SIZE
指定した容量(KB)以上のHTMLファイルを分割します。大抵のEPUBリーダーは大きなファイルサイズを扱えな
いのでこのオプションは重要です。デフォルトの 260KBは Adobe Digital Editions
向けのサイズです。0を設定すると分割を無効にします。

--no-svg-cover SVGを本の表紙に使用しない。このオプションはiPhoneや JetBook LiteのようなSVGをサポー
トしないデバイスで使用する場合に使ってください。指定しないと、それらのデバイスでは表紙が白紙になってしまいま
す。

--epub-inline-toc インラインの目次を本の本文の一部として挿入します。

--no-default-epub-cover
通常、入力ファイルに表紙がなく指定しなかった場合、タイトルや著者などからデフォルトの表紙が作成されます。この
オプションでは表紙の生成を無効にします。

--preserve-cover-aspect-ratio
SVGの表紙を使う場合、このオプションはアスペクト比(縦横の比率)を保ったまま、表紙を画面のサイズに広げます
。これにより表紙の両端や上下に白い部分ができる事がありますが、表紙は歪みません。このオプションを使わないと表
紙がいくらか歪みますが白い部分はできません。

--extract-to=EXTRACT_TO
生成した EPUB
ファイルの内容を指定したディレクトリに展開する。最初にディレクトリの内容が消されるので、注意してください。

--toc-title=TOC_TITLE
すべての生成されたインラインの目次に使われるタイトル。

--epub-flatten このオプションはFBReaderJでEPUBを見る場合のみに必要になります。EPUB内のファイルのレイアウト
をフラットにし、すべてのファイルをトップレベルに配置します。

--epub-version=EPUB_VERSION
生成するEPUBファイルのバージョンです。互換性が最も高いのはEPUB2です。EPUB3は、どうしてもそれが
必要とわかっているときに限り指定してください。

外観

外観:
出力の外観を調整するためのオプション

--base-font-size=BASE_FONT_SIZE
フォントサイズの単位はptです。作成された本の中のすべてのフォントサイズは、ここで指定したフォントサイズに従
って再指定されます。大きいサイズを指定すれば出力されたファイル中のフォントが大きくなり、逆に小さいサイズを指
定すれば小さくなります。デフォルトの値である0を指定した場合には、ベースとするフォントサイズは指定した出力プ
ロファイルに従って自動的に選択されます。

--disable-font-rescaling
すべてのフォントサイズの拡大縮小を止める

--font-size-mapping=FONT_SIZE_MAPPING
CSSフォント名からポイントでのフォントサイズへのマッピング。(例:12,12,14,16,18,20,22
,24)xx-small から xx-largeまでのマッピングで、最後のサイズになると巨大なフォントになり
ます。フォントの再変換アルゴリズムはこれらのサイズを賢く変換します。デフォルトでは、選択した出力プロファイル
に基づいたマッピングが使用されます。

--embed-font-family=EMBED_FONT_FAMILY
書籍に指定したフォントを埋め込みます。これは書籍に使われる「ベース」フォントを指定します。もし入力ドキュメン
トがフォントを指定していた場合には、それがベースフォントより優先されます。(そうしたくない場合には、スタイル
情報絞り込みを使って、入力ドキュメントからフォントを取り除いてください)。注意:フォント埋め込みはEPUB,
AZW3, DOCX のようないくつかのフォーマットでしか機能しません。

--subset-embedded-fonts
すべての埋め込みフォントをサブセット化する。すべての埋め込みフォントはこのドキュメントで使用された文字のみに
縮小され、フォントファイルのサイズを減らすことができます。使用していない文字が多い、大きなフォントを埋め込む
ときに便利でしょう。

--embed-all-fonts 入力ドキュメントから参照されているフォントで、まだ埋め込まれていないフォントをすべて埋め込みます。この機能は
、システム上のフォントを検索し、見つかればそれを埋め込みます。フォントの埋め込みは、変換先のフォーマットが埋
め込みをサポートしている場合、例えば EPUB, AZW3, DOCX, PDF の場合にしか機能しません。
ドキュメントにフォントを埋め込むための、適切なライセンスを所有していることを確認してください。

--line-height=LINE_HEIGHT
ポイントでの行の高さ。連続するテキストの行と行の間のスペースを調整します。行の高さ情報のないエレメントにのみ
適用されます。たいていの場合には最低の行の高さの設定のほうが便利でしょう。デフォルトではこの行の高さの設定は
ありません。

--minimum-line-height=MINIMUM_LINE_HEIGHT
計算されたフォントサイズのパーセントに基づく、最小の行の高さです。入力文章の指定にかかわらず、Calibre
はすべてのエレメントで最低限この行の高さになることを保障します。ゼロにすると無効になります。デフォルトは12
0%です。この意味がよくわかっている場合にのみ、設定からこの行の高さの設定を直接指定してください。例えば、「
2倍の高さ」を指定する場合には設定を240にしてください。

--linearize-tables 一部のデザインの良くない文書では、ページのテキストレイアウトにテーブルを使用しているものがあります。こういっ
た文書を変換すると、ページがはみ出したり乱れることがよくあります。このオプションを使うと、テーブルから内容を
抜き出して直線的な配置に置き換えます。

--extra-css=EXTRA_CSS
CSSスタイルシートへのパスかCSS自身を指定します。このCSSは入力ファイルのスタイル・ルールに追加される
ので、既存のルールをオーバーライドすることもできます。

--filter-css=FILTER_CSS
CSSスタイルルールから削除する、すべてのCSSプロパティのカンマ区切りのリスト。一部のスタイル情報があると
デバイスが受け付けない場合に便利です。例:font-family,color,margin-left
,margin-right

--transform-css-rules=TRANSFORM_CSS_RULES
この本のCSSスタイルを変更するルールを記述したファイルへのパス。このファイルを作成する一番簡単な方法は、C
alibre GUIにあるルール作成のウィザードを利用することです。「外観→スタイル変換」セクションにあるダ
イアログからアクセスしてください。ルールを作成したら、「エクスポート」ボタンを使ってファイルに保存することが
できます。

--expand-css デフォルトで Calibre は、CSSのmargin, padding, border, 等を指定する際に
、短縮形式を使用します。このオプションを有効にすると、短縮形式の代わりにすべて展開された形式を使用します。N
ookプロファイルはNookが短縮形式を取り扱えないため、この設定にかかわらず常に展開された形式を使用する設
定になっていることに留意ください。

--smarten-punctuation
引用記号、ダッシュ、省略記号を印刷上の正しいものに変換します。詳しくは
https://daringfireball.net/projects/smartypants
を参照してください。

--unsmarten-punctuation
ファンシークオート、ダッシュ、省略記号をそれぞれの標準的に対応する物に変換する。

--margin-top=MARGIN_TOP
上の余白をpt単位で指定。デフォルトは5.0。この値に0以下の数値を指定すると余白を設定しません
(オリジナルのドキュメント内に設定された余白を使用します)。注:
PDFやDOCXなど固定ページフォーマットでは、そのフォーマットでの指定が優先します。

--margin-left=MARGIN_LEFT
左の余白をpt単位で指定。デフォルトは5.0。この値に0以下の数値を指定すると余白を設定しません
(オリジナルのドキュメント内に設定された余白を使用します)。注:
PDFやDOCXなど固定ページフォーマットでは、そのフォーマットでの指定が優先します。

--margin-right=MARGIN_RIGHT
右の余白をpt単位で指定。デフォルトは5.0。この値に0以下の数値を指定すると余白を設定しません
(オリジナルのドキュメント内に設定された余白を使用します)。注:
PDFやDOCXなど固定ページフォーマットでは、そのフォーマットでの指定が優先します。

--margin-bottom=MARGIN_BOTTOM
下の余白をpt単位で指定。デフォルトは5.0。この値に0以下の数値を指定すると余白を設定しません
(オリジナルのドキュメント内に設定された余白を使用します)。注:
PDFやDOCXなど固定ページフォーマットでは、そのフォーマットでの指定が優先します。

--change-justification=CHANGE_JUSTIFICATION
テキスト揃えを変更します。「左」に設定すると揃えるべきすべてのテキストを左寄せにします。「揃える」にすると揃
っていないすべてのテキストを揃えます。「オリジナル」(デフォルト)にすると元ファイルの揃えを変えません。注:
一部のフォーマットのみで揃えがサポートされている事に注意してください。

--insert-blank-line
段落の間に空行を挿入します。入力ファイルが段落(

タグ)を使っていない場合は動作しません。

--insert-blank-line-size=INSERT_BLANK_LINE_SIZE
挿入される空行の高さを設定(単位em)。段落の間の行高さはこの設定値の倍の高さになります。

--remove-paragraph-spacing
段落の間の空白を取り除く。同時に段落のインデントを1.5emにします。この機能は入力ファイルが段落(


タグ)をサポートしない場合には動作しません。

--remove-paragraph-spacing-indent-size=REMOVE_PARAGRAPH_SPACING_INDENT_SIZE
Calibreがパラグラフ間の空白行を削除する時に、パラグラフを見えやすくするために自動的にパラグラフのイン
デントを設定します。このオプションはそのインデントの幅をコントロールします。(単位em)もしこの値を負にした
場合、入力されたドキュメントで指定されたインデントを使います。つまりCalibreはインデントを変えません。

--asciiize Unicode文字をASCII表記に変換します。注意して使ってください。例えば"Mikhail
Gorbachiov"の"Михаил Горбачёв"が変換されます。それと、文字に複数の表記がある場合
(例えば中国語と日本語で共有されている文字)、表記は現在のCalibreのインタフェース言語が使われます。

--keep-ligatures 入力ドキュメント内の合字をそのままにします。合字とは2つの文字を組み合わせて表現する特別な文字です。(例:f
f,fi,fl等)大半のリーダーは標準のフォントで合字をサポートしないので、これらが正しく表示される可能性は
低いです。デフォルトではCalibreは合字を2つの通常文字に変換します。このオプションはそれらをそのままに
します。

ヒューリスティック処理

ヒューリスティック処理:
共通のパターンを使ってドキュメントのテキストと構造を変更します。デフォルトでは無効になっています。 --enable-
heuristicsを使って有効にします。個々のアクションは、--disable-* オプションで無効にすることができます。

--enable-heuristics
ヒューリスティック処理を有効にします。このオプションはヒューリスティック処理を行う場合に設定します。

--disable-markup-chapter-headings
フォーマットされていない章タイトルやサブタイトルを見つけます。それらはh2とh3タグに変換されます。この設定
だけでは目次を作りませんが、目次作成の機能と同時に使用することができます。

--disable-italicize-common-cases
イタリック体で表示したり変換したりする常用句やパターンを検索します。

--disable-fix-indents
複数の(改行しない)スペースで作られたインデントを、CSSのインデントへ変換します。

--html-unwrap-factor=HTML_UNWRAP_FACTOR
行の折り返しをしない長さを決めるための比率。有効な値は0~1まです。デフォルトは0.4で、真ん中より少し小さ
いあたりです。もし少しの行しか折り返しする必要が無い場合にはこの値を下げてください。

--disable-unwrap-lines
句読点やその他のフォーマット要素によって、行折り返しを解除します。

--disable-delete-blank-paragraphs
2つの段落に挟まれた、空白の段落を取り除きます。

--disable-format-scene-breaks
左寄せのシーン区切りマーカーを中央にします。複数行からなるソフト・シーン区切りを水平区切り線にします。

--disable-dehyphenate
ドキュメント中のハイフネーションされた単語を分析します。ドキュメント自身を辞書として使い、ハイフンをそのまま
にするか取り除くかを決定します。

--disable-renumber-headings
連続する<h1>や<h2>タグがあるか探します。タグは章のヘッダの途中で分割されないように、再番号づけされま
す。

--replace-scene-breaks=REPLACE_SCENE_BREAKS
シーン区切りを指定したテキストで置き換えます。デフォルトでは入力ドキュメントからのテキストが使われます。

検索と置換

検索と置換:
ユーザ定義のパターンを使って文章や構造を変更します。

--sr1-search=SR1_SEARCH
検索1-置換文字列と置き換えられる、検索パターン(正規表現)

--sr1-replace=SR1_REPLACE
検索1-検索パターンから置き換わる、置換文字列

--sr2-search=SR2_SEARCH
検索2-置換文字列と置き換えられる、検索パターン(正規表現)

--sr2-replace=SR2_REPLACE
検索2-検索パターンから置き換わる、置換文字列

--sr3-search=SR3_SEARCH
検索3-置換文字列と置き換えられる、検索パターン(正規表現)

--sr3-replace=SR3_REPLACE
検索3-検索パターンから置き換わる、置換文字列

--search-replace=SEARCH_REPLACE
検索と置換の正規表現を含むファイルのパスを指定します。ファイルの内容は、検索の正規表現の行と、置換パターン(
置換パターンは空行も可)の行が交互になるようにしてください。正規表現はPythonの文法に従い、ファイルのエ
ンコーディングは UTF-8 でなくてはいけません。

構造の検出

構造の検出:
ドキュメント構造の自動判別を制御

--chapter=CHAPTER 章タイトルを検出するためのXPathの式。デフォルトでは、>h1> または <h2> タグのうち
"chapter", "book", "section", "prologue", "epilogue",
"part" を含むもの、および class="chapter" のものを章タイトルとします。使用する式は、
エレメントのリストを評価するものでなくてはなりません。章の検出を無効にするには、"/"
式を使用します。XPathのチュートリアルは、Calibreのユーザマニュアルを参照してください。

--chapter-mark=CHAPTER_MARK
見つかった章をどのようにマーキングするか指定します。「改ページ」を選ぶと章の前に改ページを挿入します。「ルー
ル」を選ぶと章の前に行を挿入します。「なし」を選ぶとマーキングを行いません。「両方」を選ぶと改ページと行の両
方を挿入します。

--prefer-metadata-cover
指定した表紙よりもソースファイルから検知した表紙を優先して使います。

--remove-first-image
入力電子書籍から最初の画像を取り除きます。入力ドキュメントに表紙として認識されない表紙がある場合に有用です。
その際、Calibreで表紙を指定すると表紙が2つになってしまうのを、このオプションを指定することで避けるこ
とができます。

--insert-metadata 本の書誌情報を本の最初に奥付として挿入する。これは電子書籍リーダーが、書誌情報を直接表示したり検索したりとい
った機能を持たない場合に有効です。

--page-breaks-before=PAGE_BREAKS_BEFORE
XPath式を指定します。XPathで指定された要素の直前にページブレークが挿入されます。無効にするには、式
: / を使用してください。

--disable-remove-fake-margins
いくつかの文章は、各段落に左右のマージンを指定することで、ページのマージンを指定しています。Calibreは
それらのマージンを見つけて削除しようとしますが、たまに、これが原因でマージン全体がなくなってしまうことがあり
ます。そのような場合、削除を無効にすることができます。

--start-reading-at=START_READING_AT
読書を開始する場所を指定するXPath式です。いくつかの電子書籍リーダー(最も典型的なにはKindle)は、
本を開いたときに、ここで指定した場所から開きます。この機能を使用するより詳しい情報は、Calibreのユーザ
ーマニュアルのXPathチュートリアルを参照してください。

目次

目次:
目次の自動生成をコントロールします。デフォルトでは、入力ファイルに目次があった場合に優先的に自動生成されます。

--level1-toc=LEVEL1_TOC
目次のレベル 1 に追加するタグをすべて指定するXPath式です。これが指定された場合、他の目次の自動検出に
より優先されます。XPathのチュートリアルは、Calibreのユーザマニュアル等を参照してください。

--level2-toc=LEVEL2_TOC
目次のレベル 2 に追加するタグをすべて指定するXPath式です。指定された項目は、直前のレベル 1 の項目
の下に追加されます。XPathのチュートリアルは、Calibreのユーザマニュアル等を参照してください。

--level3-toc=LEVEL3_TOC
目次のレベル 3 に追加するタグをすべて指定するXPath式です。指定された項目は、直前のレベル 2 の項目
の下に追加されます。XPathのチュートリアルは、Calibreのユーザマニュアル等を参照してください。

--toc-threshold=TOC_THRESHOLD
この数以下の章が見つかった場合、目次にリンクが追加されます。デフォルト: 6

--max-toc-links=MAX_TOC_LINKS
目次に入れられる最大のリンク数。0にすると無限になります。デフォルト: 50
。リンクは、最低の章の数の設定以下の場合にのみ、追加されるます。

--no-chapters-in-toc
目次に自動判定された章を追加しない

--use-auto-toc 元のファイルに目次がある場合、通常、設定に従い自動生成されます。このオプションは常に自動生成を行います。

--toc-filter=TOC_FILTER
目次から削除する項目を指定するための正規表現による指定。マッチした項目とその子項目は削除されます。

--duplicate-links-in-toc
もし目次を入力ドキュメントのリンクから作成する場合、重複するエントリーを許す。例えば、1つ以上のリンクが同じ
テキストで、違う場所を指している場合など。

書誌情報

書誌情報:
出力の書誌情報の設定オプション

--title=TITLE タイトルの設定

--authors=AUTHORS 著者を設定します。複数の著者はアンド記号でつなげてください。

--title-sort=TITLE_SORT
タイトルのバージョンを並び替えに使う。

--author-sort=AUTHOR_SORT
著者で並び替える時に使う文字列。

--cover=COVER 表紙を指定したファイルまたはURLに設定する

--comments=COMMENTS
電子書籍の説明を設定

--publisher=PUBLISHER
電子書籍の発行者を設定

--series=SERIES この本のシリーズ名を指定

--series-index=SERIES_INDEX
このシリーズの本の巻数を設定します。

--rating=RATING 1~5の番号で、評価を設定します。

--isbn=ISBN 本のISBNコードを設定します。

--tags=TAGS 本にタグを設定します。カンマ区切りのリストである必要があります。

--book-producer=BOOK_PRODUCER
本の製作者を設定します。

--language=LANGUAGE
言語を設定します。

--pubdate=PUBDATE 発行日を設定 (タイムゾーンが明示的に指定されない限り、ローカルなタイムゾーンとみなします)

--timestamp=TIMESTAMP
本のタイムスタンプを設定(他では一切使われません)

-m READ_METADATA_FROM_OPF, --read-metadata-from-opf=READ_METADATA_FROM_OPF, --from-opf=READ_METADATA_FROM_OPF
指定したOPFファイルから書誌情報を読み込む。このファイルから読み込んだ書誌情報は、ソースファイルの書誌情報
を上書きします。

デバッグ

デバッグ:
変換をデバッグする補助用のオプション

-v, --verbose デバッグ出力の量のレベル指定します。複数回指定すると、出力量が増えます。2回指定すると出力量が最大になります
。1回が中程度の出力量で、指定しなければ一番少ない出力量になります。

-d DEBUG_PIPELINE, --debug-pipeline=DEBUG_PIPELINE
指定したディレクトリに変換の各ステージでの出力を保存します。変換プロセスのどのステージでバグが起こっているの
か確信がない場合に便利です。