回答:
EPUB形式は、さまざまな仕様/形式をまとめたものです。
仕様は少し難しいように見えますが、実際には基本(解凍、XMLの解析)を理解すれば、それほど難しくも複雑でもありません。
EPUBをダウンロードし、どこかに解凍し、マニフェストを解析してから、関連するコンテンツを表示する方法を理解する必要があります。
あなたが始めたばかりの場合のいくつかのポインタ:
コンテンツを表示するにはUIWebView
、今のところを使用します。
ここにあなたのコードのための高レベルのステップバイステップがあります:
1)でビューを作成する UIWebView
2)EPUBファイルをダウンロードする
3)上記のリンクされたzipライブラリを使用して、アプリのドキュメントフォルダー内のサブディレクトリに解凍します
4)META-INF/container.xml
上記のリンクされたTBXMLを使用して、XMLファイルを解析します(このファイルが存在しない場合、EPUBは無効です)。
5)このXMLで、media-typeを含む最初の「ルートファイル」を見つけますapplication/oebps-package+xml
。これは本のOPFファイルです。
6)OPFファイル(XML)を解析する
7)次に、本の最初の章が何であるかを知る必要があります。
a)要素のそれぞれ<item>
に<manifest>
idとhrefがあります。これらをNSDictionary
、キーがIDでオブジェクトがhrefであるに保存します。
b)の最初<itemref>
を見てください<spine>
。(a)のIDの1つに対応するidref属性があります。でそのIDを検索するNSDictionary
と、hrefが取得されます。
c)これは、ユーザーに表示する最初の章のファイルです。フルパスを確認します(ヒント:(3)でzipファイルを解凍した場所に加えて、(6)でOPFファイルのベースディレクトリ)
8)NSURL
usingを作成しますfileURLWithPath:
。ここで、パスは(7c)からのフルパスです。UIWebView
(1)で作成したを使用してこのリクエストをロードします。
ユーザーが1つの章から別の章に移動できるように、進む/戻るボタンまたはスワイプなどを実装する必要があります。<spine>
次に使用するファイルを決定するには、を使用し<itemrefs>
ます。XMLでは、リーダーに表示される順序になっています。
どうやらEPUBは「単なる」XMLフォーマットなので、XMLパーサーと仕様があれば大丈夫です。
プラス少しチュト?楽しんで!
編集:ここでいくつかのコードを読むこともできます。これはepubを生成するためのものであり、それらを読み取るためではありませんが、コードが役立つ場合があります。
再度編集:右側のサイドバーにある関連する質問へのリンクを参照してください。ePubをサポートする無料の電子ブックリーダーへの回答にいくつかのリンクがあります。
編集3:質問を編集するときにコメントを追加して、回答者がディスカッションを続行できるようにする必要があります(コメントしない場合、編集内容は通知されません)。
そのため、Stack Overflowで仕様や関連する質問を読んでいないため、解析は失敗します... * .epubファイルは、プレーンxmlではなく、XMLファイルを含むzipフォルダーです。
私はこのチュートリアルを1度読みました(無料の登録が必要です。申し訳ありません)。ePubの素晴らしい紹介をしてくれました。deverloperWorksチュートリアルはこちら
XML処理ライブラリのいくつかをご覧になることを強くお勧めします。XMLファイルから特定の情報を取得するだけの場合は、適切な解析戦略を選択できます。
iPhoneアプリ用のepubフレームワークを作成するためにアラウンドプレイしています。
現時点では(私は本当に初心者です)、章へのリンクを含むタイトルページを生成できます。
私のアプローチは
現在、私はページフリップ、ある種のGUIと小さなユーザビリティの問題(現在表示されているページを保存する)を調べています。
始める方法についてのアイデアをあなたに与えることを願っています
Jonathan Wight(schwa)は、iPhoneでePubドキュメントを解析および表示するためのObjCソリューションを開発しました。これは、彼のTouchCodeオープンソースリポジトリの一部です。