この連載は、『PythonでMarkdownからEPUBをつくろう』を一部抜粋して編集したものです。
本編には、全てのソースコードや、生成する原稿のサンプルが付属しています。ぜひ、こちらもご購入ください。
姉妹版の『PythonとPygameで作る レトロ風RPG 全コード』もあります。
≫ 目次に戻る出力するEPUBファイルの構造を示します。作り方は人によって異なります。ここでは、この本のプログラムで出力する構成を掲載します。
epub/item/image/cover.jpg …… 表紙画像xhtml/ …… 原稿の出力先css/main.css …… 主要なCSSファイルadd.css …… 書籍固有の追加CSSファイルimage/cover.xhtml …… 表紙ページtoc.xhtml …… 目次ページd_000.xhtml …… 原稿ページ 1d_900.xhtml …… 原稿ページ Xcontent.opf …… 収録内容情報META-INF/container.xml …… メタ情報mimetype …… ファイル情報 mimetypeとMETA-INF/container.xmlは固定です。プログラムで書き換えることはありません。
プログラムで生成するのはepub/item/xhtmlの中身です。また、content.opfも生成します。
EPUBファイルを作る際は、このような構造のディレクトリーを作ったあと、epubディレクトリーの中身をZIPで圧縮します。
その際、注意する点が2つあります。1つは、ZIPの先頭にmimetypeを無圧縮で格納することです。他のファイルは圧縮して格納します(圧縮しなくてもよいですが、ふつうは圧縮します)。
もう1つは、epubディレクトリーを圧縮するのではなく、epubディレクトリーの中身だけをZIPに格納することです。
間違ったZIPの中身と、正しいZIPの中身の例を示します。ZIP内にepubディレクトリーがないことが分かると思います。
epub/mimetypeepub/META-INF/container.xmlepub/item/content.opfepub/item/image/cover.jpgepub/item/image/xhtml/css/main.cssmimetypeMETA-INF/container.xmlitem/content.opfitem/image/cover.jpgitem/image/xhtml/css/main.cssこの2つの注意点があるため、通常の圧縮ソフトで単純にZIP化しても、正しいEPUBファイルにはなりません。プログラムを使ってZIPにするか、少し面倒な手順を踏む必要があります。
この連載は、『PythonでMarkdownからEPUBをつくろう』を一部抜粋して編集したものです。
本編には、全てのソースコードや、生成する原稿のサンプルが付属しています。ぜひ、こちらもご購入ください。
姉妹版の『PythonとPygameで作る レトロ風RPG 全コード』もあります。