注意
このドキュメントは、AppleがiBooksで公開している「The Swift Programming Language」を私がAndroidで読むために行った手順書であり、違う環境や違うコンテンツに同じように適用できるとは限らない(適用できる可能性は高いとは思うが)。
手順
まず大前提として、EPUBファイルはファイルである。しかし、iBooksが保持しているコンテンツは(おそらく解凍されて)ディレクトリの形で保存されている。Wikipediaによると、EPUBは必要なファイルをzipに固めたものであるらしい。しかし、一口にzipと言ってもエントリの順に制約があり、ただアーカイバで何も考えずに固めただけでは上手くいかない。詳しくは以下のドキュメントを参照のこと。
実際の作業
まずはiBooksのディレクトリからコンテンツを引っ張ってくる必要がある。コンテンツが保存されているディレクトリは一般的に以下の場所にある。
~/Library/Containers/com.apple.BKAgentService/Data/Documents/iBooks/Books
このディレクトリをFinderで見ると、*.epubのようなファイル(に見えるが実体はディレクトリ)が配置されているので、必要なものを適当な場所にコピーする。
上記のドキュメントを読んでいない人間のために軽く説明すると、epubとして扱われるzipファイルには以下のような制約を満たしている必要がある。
- 圧縮や暗号化されていないmimetypeがファイルの先頭にある
これを満たすために、以下のとおりzipコマンドでアーカイブを作成する。
cd path/to/copy
rm iTunesArtwork iTunesMetadata.plist
zip -0 -X ../output.epub mimetype
zip -r ../output.epub *
これで元々のepubディレクトリと同じディレクトリにoutput.epubが出力されるので、適当に名前をつければ一般的なEPUBリーダで表示することができるだろう。
Androidであれば、Gitden Readerあたりを使うと、綺麗に表示された。
https://play.google.com/store/apps/details?id=com.gitden.epub.reader.app&hl=ja