2013年5月13日月曜日

epubcheckのラクな動かし方 for Windows 7

EPUBロゴマーク

「Kindle ダイレクト・パブリシング、失敗から学んだこと」という中嶋聡さんのエントリーへの反響で、「事前にEPUB Validator (beta)でチェックしておけばいい」という話を聞きました。

そこで、いままで自分で作ったEPUBをチェックしてみたところ、とんでもなくたくさんのエラーが見つかりました。制作環境をあちこち渡り歩いたのがいけないと思うのですが、ボクはこの状態のファイルを販売していたのかと愕然。

ところがこの「EPUB Validator」は、最大10MBまでしか対応していません。制作中の「これもうきっとGoogle+ガイドブック」のAndroid編・iOS編はかなりのボリュームなので、「EPUB Validator」ではチェックができません。そこで、ローカルで実行できる「epubcheck」を利用してみることにしました。

ところがこれはJavaなので、コマンドプロンプトから実行しなければならないのです。まともに利用できるようになるまで、えらく大変な思いをしました。せっかくなので、覚え書きとしてエントリーに残しておきます。多大な協力をいただいた +Hiroshi Takase さんと +董福興 さんと林智彦さんと大江和久さんに感謝。



手順は、だいたいこのNAVERまとめ通りです。


ただ、なぜかこの手順通りやっても、コマンドプロンプトで "Java" が実行できませんでした。ボクの環境では「'java'は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません」というエラーが出てしまいます。

四苦八苦したあげく、cdで "C:\Program Files (x86)\Java\jre7\bin" に移動すれば実行できることがわかりました。epubcheckの位置も、チェック対象のEPUBファイルも、どちらもフルパスで指定しなきゃダメな状態でした。コマンドプロンプトで毎回フルパス入力するのは泣けるので、ドラッグ&ドロップで実行できるようなやり方を教えてもらいました。

  1. まずJava Runtime Environmentをダウンロード&インストールする
    (※本稿執筆時点では Version 7 Update 21)
  2. epubcheckをダウンロードする
    (※本稿執筆時点では epubcheck-3.0.zip)
  3. epubcheck-3.0.zipを解凍し、 "c:\epubcheck" へ入れる
    (※解凍したときのフォルダ名から-3.0を削除してあります)
  4. [システムのプロパティ]から[詳細設定]の[環境変数]で、[ユーザー環境変数]を[新規作成]して、変数 "Path" 、変数値 "C:\Program Files (x86)\Java\jre7\bin" と入力。
  5. テキストエディタで以下のコマンドを入力して、ファイル名 "epubcheck.bat" で保存。

@ECHO OFF
java -jar C:\epubcheck\epubcheck-3.0.jar %1
PAUSE

これで、"epubcheck.bat" にEPUBをドラッグ&ドロップすれば epubcheck が動くようになりました。エラーがあると下記のような形で、EPUBの中のファイル名とエラー箇所を教えてくれます。

Epubcheck Version 3.0
Validating against EPUB version 3.0
ERROR: c:/epubcheck/test.epub/OEBPS/text/nav.xhtml(128,48): 'OEBPS/text/001.xhtm
l': referenced resource missing in the package.

nav.xhtml の128行目48文字目で指定している 001.xhtm がパッケージに存在しないぞ? というエラーです。つまりファイル名の指示ミスですね。修正してエラーのないEPUBになると、次のようなメッセージが表示されます。

Epubcheck Version 3.0
Validating against EPUB version 3.0
No errors or warnings detected.

いろんな制作環境を渡り歩いたせいでEPUBのヘッダーが妙な状態になっていたので、全ファイル<body>の前を下記のコードに書き換えました。これもついでに覚え書き。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html >
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops" lang="ja" xml:lang="ja">
<head>
<meta charset="UTF-8" />
<link rel="stylesheet" href="../style/style.css" type="text/css" />
<title>これもうきっとGoogle+ガイドブック 第×巻 △編</title>
</head>

あとは、Kindleでちゃんと目次が表示されるように、nav.xhtml の</body>の前に、次の7行を追加。

<nav id="landmarks" epub:type="landmarks" hidden="hidden">
<ol>
<li><a epub:type="cover" href="cover.xhtml">表紙</a></li>
<li><a epub:type="toc" href="nav.xhtml">目次</a></li>
<li><a epub:type="bodymatter" href="titlepage.xhtml">本文</a></li>
</ol>
</nav>

製品版FUSEeを使っているのですが、nav.xhtml が編集モードに切り替えられず、ここでも難儀しました。ぐぬぬ。

FUSEe ver.1.0
FUSEe ver.1.0
posted with amazlet at 13.05.13
株式会社フューズネットワーク
売り上げランキング: 2,310

手元にあるのがプレーンテキストと画像データなら、「でんでんコンバータ」を使った方がラクかもしれません。epubcheckでエラーのでない、美しいEPUBが出力できます。

しかし、Windowsの制作環境ってどうしてこんなに貧弱なんだ……。

週間人気投稿

月間人気投稿