gitbookでPDF/epub出力できるようにする(calibre)

前回の記事によりmarkdownファイルをgitbookでHTML化できるようになったわけですが、せっかくなのでPDFでも出力できるようにします。

gitbookからPDF化するにはCalibreを使う

gitbookのgithubページには、eBookへの出力について次のように書いてあります。

eBook: You need to have ebook-convert installed. You can specify the eBook filename as the second argument, otherwise book will be used.

gitbookではコンバートに「Calibre」というツールに含まれる「ebook-convert」コマンドを使うとのこと。CalibreはGUIを持った高機能な電子書籍管理アプリで、コンバート機能は補助的なもののようです。

calibre - About

calibre is a free and open source e-book library management application developed by users of e-books for users of e-books. It has a cornucopia of features divided into the following main categories:

参考までにWikipediaからも引用。

calibre - Wikipedia

Calibreとはフリー・アンド・オープンソース電子書籍ソフトウェアであり、電子書籍を保存や管理を行うことが可能で、多数のフォーマットに対応している。またDRMのかかった電子書籍を他のフォーマットへ変換でき、数種類の主な電子ブックリーダーと同期することができる。

Calibreのインストール

ということで、Calibreをインストールします。ダウンロードページからOS X版のインストーラが入ったdmgファイルをダウンロードします。バージョンは2.49.0でした(2016/01/20時点)。dmgの中には.appファイルが入っているので(ちゃんと署名されていました)、/Applicationsにコピーするだけです。

f:id:swiftlife:20160120132017p:plain

Calibreの初回起動時は管理ディレクトリやcontent serverの起動を尋ねられますが、今回はコンバートにだけ利用する予定なので、何もさせないよう適当な値を入れつつインストールしました。ただしそれだけだと目的のebook-convertコマンドが使えないので、calibre.app下にパスを通しておきます。

export PATH=/Applications/calibre.app/Contents/MacOS:$PATH

あ、公式ドキュメントの「2.3 ebook-convert」にもパスの通し方について記載がありました。こちらはebook-convertコマンドだけをシンボリックリンクで外に出していますね。

Mac

Download the Calibre app. After moving the calibre.app to your Applications folder create a symbolic link to the ebook-convert tool:

$ sudo ln -s ~/Applications/calibre.app/Contents/MacOS/ebook-convert /usr/bin

You can replace /usr/bin with any directory that is in your $PATH.

どちらでも好きな方でよいと思います。 以上で準備完了です。

PDFへのコンバート

コンバートするには、gitbookコマンドに「pdf」オプションを付けるだけです。htmlのときのbuildオプションの代わりに指定します。

% gitbook help
  build [book] [output]      build a book
    --format     Format to build to (Default is website; Values are website, json, ebook)
    --log    Minimum log level to display (Default is info; Values are debug, info, warn, error, disabled)

  pdf [book] [output]    build a book to pdf  ←PDF化はこちらを使う
    --log    Minimum log level to display (Default is info; Values are debug, info, warn, error, disabled)

簡単に試してみました。

$ mkdir ~/mybook && cd ~/mybook
$ gitbook init   # 初期化(README.mdとSUMMARY.mdの作成)
$ gitbook pdf  # PDF化
$ ls
README.md  SUMMARY.md book.pdf

book.pdfが出来上がっていることを確認できました。

追加調査とまとめ

簡単な文章で試したところ、日本語はおおむね大丈夫でしたが絵文字「😄」はHTMLと異なり空白で表示されるだけでした。

しかし簡単な作業でそこそこ整ったPDFができるので、これは便利そうです。