AozoraEpub3の処理の流れを見ていこう。青空文庫形式では、文章内にタイトルや著者名などの書誌情報が含まれている。そのために、テキストを読み込んでから書誌情報を取得する必要がある。
一括でやればかんたんな気もするが、GUIの方で書誌情報や表紙などを修正機能があるのでそうしているのではないかと思う。また、文字コードの自動判別は自分で追加したので人のことを言えない。
アプレットとアプリケーションAozoraEpub3Applet.java
コマンドラインタイプを見ていく
設定ファイルAozoraEpub3.iniを読み込む
初期設定
ファイルの読み込み
ZIPファイルの判定
File outFile = getOutFile(srcFile, dstPath, bookInfo, autoFileName, outExt);
AozoraEpub3.convertFile(
srcFile, ext, outFile,
aozoraConverter, writer,
encType, bookInfo, imageInfoReader, txtIdx);
}
srcFileは入力ファイル
dstPathは出力パス
bookInfo書誌情報
boolean autoFileName = true; //ファイル名を表題に利用
String outExt = ".epub";
txtIdx テキストファイルのZip内の位置
/** コマンドライン実行用 */
main
/** 出力ファイルを生成 */
getoutfile
/** 前処理で一度読み込んでタイトル等の情報を取得 */
getbookinfo
/** ファイルを変換
convertfile
/** 入力ファイルからStreamオープン
getTextInputStream