この連載は、『PythonでMarkdownからEPUBをつくろう』を一部抜粋して編集したものです。
本編には、全てのソースコードや、生成する原稿のサンプルが付属しています。ぜひ、こちらもご購入ください。
姉妹版の『PythonとPygameで作る レトロ風RPG 全コード』もあります。
≫ 目次に戻るEPUBCheckは、EPUB仕様に準拠しているか確認するソフトです。Javaアプリとして作成されているので、実行にはJavaが必要です。
Javaの実行環境がない場合は、まずはJavaをインストールします。無料で利用できます。
最新のJDKをダウンロードしてインストールしてください。使用しているOS用のインストーラーを利用するとよいです。
Java Downloads | Oracle 日本
https://www.oracle.com/jp/java/technologies/downloads/

「~Installer」と名前が付いたものがよいです。インストーラー(実行ファイル)が必要な作業をしてくれます。
インストールが終了したら、VSCodeのターミナルを開いて次のコマンドを実行してください。一度VSCodeを閉じて、再起動しなければいけないかもしれません。Javaのバージョンが表示されたら、正しくインストールされています。
java --version
続いて、EPUBCheckをダウンロードします。無料です。EPUBCheckのページを示したあと、どのバージョンを利用するか話をします。
w3c/epubcheck:
The conformance checker for EPUB publications
https://github.com/w3c/epubcheck

EPUBにはバージョンがあります。バージョンが上になるほど、リッチな内容になっています。
EPUBCheckのバージョンによって、対応しているEPUBのバージョンが異なります。
| EPUBのバージョン | EPUBCheckのバージョン |
|---|---|
| EPUB 3.3 | EPUBCheck v5.X.X |
| EPUB 3.2 | EPUBCheck v4.X.X |
| EPUB 3.0 | EPUBCheck v3.X.X |
古いKindleでも動作させることを考えると「EPUBCheck v3.X.X」で確認するのが無難です。そのため、次のファイルをダウンロードして使います。
Release EpubCheck 3.0.1 · w3c/epubcheck
https://github.com/w3c/epubcheck/releases/tag/v3.0.1

ダウンロードが完了したら解凍してください。このときepubcheck-3.0.1ディレクトリーからepubcheck-3.0.1.jarを取り出してはいけません。
epubcheck-3.0.1.jarは単体では動作しません。同梱のlibディレクトリー内のファイルに依存しています。
それでは、EPUBCheckで.epubファイルの確認をおこないましょう。VSCodeで、epubcheck-3.0.1ディレクトリーを開きます。そしてターミナルを開きます。
確認するファイルはsample-book.epubとします。ファイルは次のような配置になります。
epubcheck-3.0.1/epubcheck-3.0.1.jarsample-book.epub この場合、VSCodeのターミナルで次のようにコマンドを入力してEnterキーを押します。
java -jar epubcheck-3.0.1.jar sample-book.epub

このコマンドの場合は、ターミナルで開いているディレクトリにepubcheck-3.0.1.jarとfile.epubの両方が存在している必要があります。それ以外の場所にファイルがある場合は、epubcheck-3.0.1.jarやfile.epubをフルパスで書いて下さい。
パスの間に半角スペースがある場合は、パスを"(ダブルクォーテーション)で囲う必要があります。
java -jar "C:\aaaa\epubcheck-3.0.1.jar" "C:\bbb\file.epub"
手元にEPUBファイルのサンプルがない場合は、次のページからファイルをダウンロードして使うとよいでしょう。
EPUB 3 Samples | EPUB 3 Samples Project
https://idpf.github.io/epub3-samples/30/samples.html
この連載は、『PythonでMarkdownからEPUBをつくろう』を一部抜粋して編集したものです。
本編には、全てのソースコードや、生成する原稿のサンプルが付属しています。ぜひ、こちらもご購入ください。
姉妹版の『PythonとPygameで作る レトロ風RPG 全コード』もあります。