# たった600円でオライリー本をiPadやKindleで読む。すてき。 _published: 2010/07/15_ ![alt](http://b.hatena.ne.jp/entry/image/http://d.hatena.ne.jp/shunsuk/20100715/1279199789) オライリー本読んでますか?いろいろ揃っていて、ついつい買っちゃいますよね。でも、価格が高い&厚い&重いの三重苦です。ところが、iPhone版の電子書籍だと600円で買えてしまいます。しかも、場所を取らない。最初は数冊だったのが、今では868冊がリリースされています。 - [これがO’ReillyのiPhone電子書籍だ!!(写真満載レビュー) - このブログは証明できない。](http://d.hatena.ne.jp/shunsuk/20090728/1248778806)![alt](http://b.hatena.ne.jp/entry/image/http://d.hatena.ne.jp/shunsuk/20090728/1248778806) 600円でフルバージョンが手に入るオライリー本ですが、やはりiPhoneであのボリュームを読むのはツライ。そこでオライリーでは、iPadやKindleで読める電子書籍を販売しています。 - [no title](http://oreilly.com/ebooks/) ところが、紙の本と比べてそれほど安くないんですね。iPhone版の600円はやはり魅力です。大丈夫。実はこのアプリからiPadで読めるepubを取り出すことができるんです。特殊なハックというわけではなく、オライリーのサイトでもやり方が書かれています。 - [Ebook Bundles - Getting The Most](http://oreilly.com/ebooks/oreilly_iphone_tips.csp) さらに、取り出したepubをKindleで読めるmobi形式に変換することもできます。今日は、そのやり方をメモっておきます。 600円のiPhoneアプリを購入します。iTunesでアプリを右クリックして「Finderで表示」します。 ![[20100715215507.png]] 表示されたipaファイルをどこかにコピーします。 ![[20100715215506.png]] 拡張子をzipに変更し、解凍します。 ![[20100715215505.png]] Payloadというフォルダの中にappファイルがあります。 ![[20100715215504.png]] 右クリックして「パッケージの内容を表示」します。bookフォルダの中です。 ![[20100715215503.png]] 3つとも選択して、「3項目を圧縮」します。できあがったzipファイルの拡張子をepubに変更します。これで、iPadで読めるepubファイルが完成しました。 ![[20100715215502.png]] Kindleでも読めるようにします。アマゾンのサイトからKindleGenというツールをダウンロードします。 - [Kindle Publishing Programs](http://www.amazon.com/gp/feature.html?ie=UTF8&docId=1000234621) ホームディレクトリにでも展開しておきます。ターミナルでepubを指定してKindleGenを実行します。 ```sh % cd ~/path/to/epub % ~/KindleGen/kindlegen Real\ World\ Haskell.epub ``` このままだと、エラーがでました。 ```sh Error(prcgen): The root <ncx> tag not found. Error(prcgen): The table of content could not be built. ``` 応急処置。上記の3項目のうちOEBPSフォルダの中にあるtoc.ncxファイルをテキストエディタで開きます。 ```xml <ncx:ncx xmlns:ncx="http://www.daisy.org/z3986/2005/ncx/" version="2005-1"> <ncx:head> <ncx:meta name="cover" content="cover"/> ``` このncxというネームスペースを削除します。一括置換で。 ```xml <ncx xmlns:ncx="http://www.daisy.org/z3986/2005/ncx/" version="2005-1"> <head> <meta name="cover" content="cover"/> ``` 再度KindleGenを実行。 ```sh % ~/KindleGen/kindlegen Real\ World\ Haskell.epub ``` ![[20100715215501.png]] Kindleで読めるmobiファイルが完成しました。 ![[20100715215500.png]] それでは、iPadで読んでみましょう。iTunesにepubファイルをドラッグ&ドロップして、iPadと同期します。 ![[20100715215459.png]] この通り。iPadで読むことができました。 ![[20100715203358.jpg]] ![[20100715203425.jpg]] 次に、Kindleです。mobiファイルをKindleに入れるだけ。Kindleでも読むことができました。レイアウトも問題ありません。iPhoneと違って、コードもしっかり読めます。 ![[20100715203618.jpg]] ![[20100715204255.jpg]] Kindle形式なので、コンテンツ間やWebへのジャンプも使えます。もちろん、単語にカーソルをあわせると、辞書も表示されます。 ![[20100715204356.jpg]] KindleGenの目次のファイルでエラーが出て、応急処置をしました。その影響で、Kindleでは目次が使えません。epubとmobiの仕様を確認して、なんとか対応したいと思います。 それにしても、各600円でオライリー本を読みまくれるのはうれしいですね。 追記(2010-07-16):dankogai先生が自動化するスクリプトを書いてくれましたよ。 - [404 Blog Not Found:perl - O’ReillyのiPhoneアプリ本からepubをぶっこぬく](http://blog.livedoor.jp/dankogai/archives/51484907.html) 追記(2010-07-17):目次の秘密がわかりましたよ。 - [Kindle形式で目次を表示する。epubとの違い。 - このブログは証明できない。](http://d.hatena.ne.jp/shunsuk/20100717/1279372188)![alt](http://b.hatena.ne.jp/entry/image/http://d.hatena.ne.jp/shunsuk/20100717/1279372188) 追記(2010-07-21):目次を生成するスクリプトを書きましたよ。 - [Kindle用の目次を生成するスクリプトを書いた。 - このブログは証明できない。](http://d.hatena.ne.jp/shunsuk/20100721/1279700208)![alt](http://b.hatena.ne.jp/entry/image/http://d.hatena.ne.jp/shunsuk/20100721/1279700208)