ePub ファイルを読み取るための iPhone アプリケーションを開発しようとしています。これを開発するためのフレームワークはありますか? このファイル形式の読み方がわかりません。NSXML パーサーを使用して、拡張子が .epub のサンプル ファイルを解析しようとしましたが、失敗します。
6 に答える
EPUB 形式は、さまざまな仕様 / 形式をまとめたものです。
- 本の内容がどのように見えるべきかを示すもの (XHTML 1.1 + CSS のサブセット)
- そのコンテンツを構成するすべてのファイルをリストする「マニフェスト」を定義するもの (OPF、XML ファイル)
- すべてをパッケージ化する方法を定義するもの (OEBPS: マニフェスト内のすべての zip ファイルといくつかの追加ファイル)
仕様は少し難しそうに見えますが、実際には、基本 (解凍、XML の解析) を理解していれば、特に難しくも複雑でもありません。
EPUB をダウンロードする方法、どこかに解凍する方法、マニフェストを解析する方法、関連するコンテンツを表示する方法を考える必要があります。
始めたばかりの場合のヒント:
コンテンツを表示するにはUIWebView、今のところ a を使用してください。
コードのハイレベルなステップバイステップは次のとおりです。
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) NSURLusing を作成しますfileURLWithPath:。ここで、パスは (7c) からのフル パスです。UIWebView(1)で作成した を使用して、このリクエストを読み込みます。
ユーザーがあるチャプターから別のチャプターに移動できるように、進む/戻るボタンやスワイプなどを実装する必要があります。を使用して、<spine>次に表示するファイルを決定し<itemrefs>ます。XML 内の は、リーダーに表示される順序になっています。
どうやら EPUB は "単なる" XML 形式であるため、xml パーサーと仕様があれば問題ないはずです。
プラス少しチュート?楽しむ!
編集:ここでいくつかのコードを読むこともできます。これはepubを生成するためのものであり、それらを読むためのものではありませんが、コードは役立つ場合があります。
再度編集: 右側のサイドバーにある関連する質問へのリンクを参照してください。回答には、ePub をサポートする無料の電子ブック リーダーへのリンクがいくつかあります。
編集 3: 質問を編集するときにコメントを追加して、回答した人が議論を続けることができるようにする必要があります (コメントしないと、編集に気づかれません)。
したがって、スタック オーバーフローに関する仕様または関連する質問を読んでいなかったため、解析に失敗しました... *.epub ファイルは、プレーンな xml ではなく、XML ファイルを含む圧縮フォルダーです。
このチュートリアルを 1 回読みました (無料の登録が必要です。申し訳ありません)。ePub の素晴らしい入門書になりました。developerWorks のチュートリアルはこちら
XML 処理ライブラリーのいくつかを検討することを強くお勧めします。XML ファイルから特定の情報を取得するだけの場合は、適切な解析戦略を選択できます。
iPhoneアプリ用のepubフレームワークを作成するために遊んでいます。
現時点では(私は本当に始めたばかりです)、章へのリンクを含むタイトルページを生成できます。
私のアプローチは
- 基本的にjavascriptアプリをiPhoneアプリとして許可するレイヤーとしてquickconnect iPhoneフレームワークを使用します(おそらくphonegapに変更します)
- 解凍した epub をリソースとしてプロジェクトに追加します
- カスタマイズされたバージョンの epub.js (google-code のどこか) を使用して全体を解析します。
現在、ページフリップ、ある種の GUI、およびマイナーなユーザビリティの問題を調査しています (表示中の現在のページを保存します)。
開始方法についてのアイデアが得られることを願っています
Jonathan Wight(schwa)は、iPhoneでePubドキュメントを解析および表示するためのObjCソリューションを開発しました。それは彼のTouchCodeオープンソースリポジトリの一部です。