2011年7月31日日曜日

Automator を用いて EPUB を作る

 Mac OS X Lion の Automator には「テキストを EPUB ファイルにレンダリング」というアクションが追加されている。このアクションを用いることでテキストファイル(.txt)もしくはリッチテキスト(.rtf)から EPUB ファイルを生成することができる。今回は以下のようなサービスを作成して実際にどのような EPUB が生成されるかを見てみる。
 この Automator ワークフローを保存すると ~/Library/Services に保存され、Finder のサービスメニューもしくはファイル選択して右クリックのコンテキストメニューから実行できるようになる。
「テキストを EPUB ファイルにレンダリング」アクションは複数ファイルの入力をサポートしており、その場合はファイル名の順番に章立てされるような感じで EPUB が生成される。複数のファイルから生成する場合はそれらに連番を付ける等をしておくと並び順を制御できる。

 原稿のテキストファイルとそれらから生成した EPUB が以下。
 EPUB を Murasaki で表示すると以下の画像のようになる。
 元が単なるテキストなので見栄えはしない。たとえばファイルの先頭一行目はタイトルとみなして自動で大きめのフォントサイズにしてくれる、みたいな気の効いたことをしてくれると使い出があるのだが。

 次にリッチテキスト原稿と生成した EPUB が以下。
 EPUB を Murasaki で表示すると以下のようになる。
 こちらの場合では、元のリッチテキストの段階でフォントサイズや色をある程度制御できる。4ページ目の「文字いじり」の章が以下の画像のようになる。
 これは Mac OS X 付属のテキストエディットで設定できる「段落スタイル」に対応している。「アウトライン」以外のスタイルは Murasaki で表示できる形式に変換されているようである。「アウトライン」の部分が実際にどのように変換されているのかを見てみると font-effect: outline という CSS3 のプロパティが設定されていた。Murasaki は Safari と同等の WebKit を用いているが、WebKit は font-effect には対応していないようである。

 設定されるメタデータが以下のようになる。
<metadata xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:opf="http://www.idpf.org/2007/opf">
    <dc:title>Automator で EPUB を作る(テキストファイル編)</dc:title>
    <dc:language>en</dc:language>
    <dc:identifier id="BookId" opf:scheme="ISBN">123456789X</dc:identifier>
    <dc:creator opf:file-as="" opf:role="aut">Genji</dc:creator>
</metadata>
 dc:titledc:creator の値はアクション実行時のダイアログから設定できるが、dc:languagedc:identifier は固定のようである。dc:language はともかく dc:identifier が固定なのは気持ち悪い。

 テキストエディットでは文中に画像を入れた、rtfd という拡張子を持つ「添付データ付きリッチテキストフォーマット」を作成できるが、この Automator アクションには対応していない。アクション実行時のダイアログで表紙画像を設定したり、HTML ファイルそれぞれに画像等を配置したりすることはできる。

 以上、簡単な紹介でした。

0 comments:

コメントを投稿