かわろぐ

技術、セキュリティ、その他もろもろ

MENU

gitbook で PDF を書き出そうと思ったら応答がなかった

前回の記事では、gitbookの環境のセットアップをしました。今回は、gitbook で作成したドキュメントを PDF に変換するときにハマったことを書いておきます。

環境

  • macOS X catalina
  • calibre 4.2.0
  • gitbook-cli 2.3.2
  • GitBook version: 3.2.3

pdf 出力すると途中で止まる

以下のコマンドで、 gitbook から PDF のドキュメントに変換して出力できるはずです。

$ gitbook pdf . out.pdf 

が、以下の出力がコンソールにあってから、待てど暮せど完了しません。CPUが回っているわけでも無いので原因不明です…

info: 7 plugins are installed
info: 6 explicitly listed
info: loading plugin "highlight"... OK
info: loading plugin "search"... OK
info: loading plugin "lunr"... OK
info: loading plugin "sharing"... OK
info: loading plugin "fontsettings"... OK
info: loading plugin "theme-default"... OK
info: found 3 pages
info: found 2 asset files

解決策を探すためデバッグログをみる

原因を探るためにデバッグログを出力させます。 gitbook は以下ののオプションでデバッグログを出力するようにすることができます。

$ gitbook pdf . out.pdf --log=debug —debug
debug: Auto generated TOC with 3 entries.
debug: Flattening CSS and remapping font sizes...
debug: Source base font size is 12.00000pt
debug: Removing fake margins...
debug: Cleaning up manifest...
Trimming unused files from manifest...
debug: Creating PDF Output...
debug: 67% Running PDF Output plugin
debug: 68% Parsed all content for markup transformation
debug: 70% Completed markup transformation
debug: [1106/220730.806158:ERROR:icu_util.cc(177)] Invalid file descriptor to ICU data received.
[1106/220730.806170:ERROR:icu_util.cc(177)] Invalid file descriptor to ICU data received.
debug: [1106/220730.806054:ERROR:icu_util.cc(177)] Invalid file descriptor to ICU data received.
debug: [1106/220730.812668:ERROR:icu_util.cc(177)] Invalid file descriptor to ICU data received.

なるほどわからん。とりあえず gitbook側のバグではなさそう?ということぐらいしかわかりません。 ひたすらググっていると以下のQAがヒットしました。

https://stackoverflow.com/questions/58498643/no-result-or-error-when-using-gitbook-pdf

これを見ると calibre をダウングレードしろとありました。 ダウングレードして、再度実行したところ無事にPDFが出力されました。

がしかし…

gitbook はもうメンテナンスされていない

ってここまで環境を構築しておいて gitbook はメンテナンスされていないことに気づいた。悲しい。gitbook-cli の方だけじゃなくて、 gitbook 本体のリポジトリの方も確認すべきだった。

代替として Sphinx を調べてみようか…

Pythonプロフェッショナルプログラミング第3版

Pythonプロフェッショナルプログラミング第3版

SphinxでKindle本を作る

SphinxでKindle本を作る