2009-09-07 15 views
97

私はePubファイルを読むためのiPhoneアプリケーションを開発しようとしています。これを開発するためのフレームワークはありますか?私はこのファイル形式を読む方法については知らない。 NSXML Parserを使用して.epub拡張子のサンプルファイルを解析しようとしましたが、失敗します。ePub形式を読む

答えて

292

EPUB形式は異なる仕様/フォーマットの束を結集:

  • 一冊の内容は、(+ CSS XHTML 1.1のサブセット)どのように見えるか言って
  • 1を定義します(XMLファイルであるOPF)
  • すべてがパッケージ化される方法を定義するもの(OEBPS:マニフェスト内のすべてのZIPファイルといくつかの余分なものファイル)

仕様は少し難解ですが、実際には(解凍してXMLを解析する)基礎が得られれば、特に難しくないか複雑ではありません。

EPUBをダウンロードし、別の場所に解凍してマニフェストを解析し、関連するコンテンツを表示する方法を検討する必要があります。あなただけ出始めている場合

いくつかのポインタ:

がちょうど今のUIWebViewを使用したコンテンツを表示します。ここで

は、あなたのコードのステップにより、高レベルのステップです:

1)UIWebView

2でビューを作成する)EPUBファイル

3をダウンロードしてください)あなたの中のサブディレクトリに解凍します上記のリンク先のzipライブラリを使用して、アプリケーションのドキュメントフォルダ

4)META-INF/container.xmlでXMLファイルを解析します(このファイルが存在しない場合、EPUBは無効です)。TBXMLを使用して、

01にリンクしてください

5)このXMLでは、メディアタイプがapplication/oebps-package+xmlの最初の「ルートファイル」を検索します。これは本のOPFファイルです。

6)OPFファイル(XMLも)

7をパース)今、あなたは、この本の最初の章が何であるかを知っておく必要があります。

a)<manifest>要素内の各<item>は、idとhrefを持ちます。 NSDictionaryに格納します。ここで、キーはidで、オブジェクトはhrefです。

b)<spine>の最初の<itemref>を見てください。これは、(a)のidの1つに対応するidref属性を持ちます。そのIDをNSDictionaryで調べると、hrefが表示されます。

c)これは、ユーザーを表示する最初の章のファイルです。完全なパスが何であるかをうまく(ヒント:あなたは(3)プラスでOPFファイルのベースディレクトリは、(6)でのzipファイルを解凍したところはどこでも、それはだ)

8)fileURLWithPath:、パスを使用してNSURLを作成します(7c)からの完全なパスです。 (1)で作成したUIWebViewを使用してこのリクエストをロードします。

ユーザーがあるチャプターから別のチャプターに移動できるように、前方/後方ボタンまたはスワイプなどを実装する必要があります。 <spine>を使用して、次に表示するファイルを決定します.XMLの<itemrefs>は、読者に表示する順序になっています。

+0

本当に良いチュートリアル..!クールな男..!私はそのようなデモのために多くの時間を費やしました –

+13

それは恥ずかしいですが、この回答のための1 upvoteを提供することが可能です –

+0

偉大な答え。これはFAQになっています:) –

21

明らかにEPUBはXML形式の「ちょうど」なので、xmlパーサーがあり、the specの場合は大丈夫です。

プラスa little tuto?楽しむ!

EDIT:コードhereを読むこともできますが、これはepubを生成するためのものであり、コードを読むのではなく、コードが役に立つ場合があります。

もう一度EDIT:右側のサイドバーにある関連する質問へのリンクを参照すると、ePubをサポートする無料の電子書籍リーダーへの回答にいくつかのリンクがあります。


EDIT 3:あなたに答える人々が議論を続けることができますので、あなたの質問を編集するときは、コメントを追加する必要があります(あなたは私たちがあなたの編集の気づいていないコメントしていない場合)。

スタックオーバーフローで仕様や関連する質問を読んでいないため、解析が失敗します。* .epubファイルは、XMLファイルではなくXMLファイルを含むzipフォルダです。

6

私はこのチュートリアルを一度読んでいます(無料登録が必要です、ごめんなさい)、ePubを紹介しました。 deverloperWorks tutorial here

XML処理ライブラリのいくつかをお勧めします。特定の情報をXMLファイルから取得したいだけなら、適切な解析方法を選択できます。

+0

あるこのチュートリアルでは優れており、利用可能な標準のオープンソースのePubツールの多くを執筆者によって書かれています。これはすばやく読み込まれ、ePub形式への完全なイントロダクションを提供します。 –

2

iphoneアプリ用のepub-frameworkを作成するためにarroundを再生しています。

現時点では(私はちょうどスタートセット)、私は章へのリンクを持つタイトルページを生成することができます。

私のアプローチは

  • 使用[クイック接続のiPhoneのフレームワークは、基本的にはiPhoneアプリとして アプリの
  • にressourceとしてUNZIPedのEPUBを追加するJavaScriptを可能層(たぶん私はPhoneGapのに変更) は ようですプロジェクト
  • カスタマイズしたバージョンのepubですべてを解析します。JS(どこかにGoogleのコード上)

今私は、pageflipにGUIとマイナーなユーザビリティの問題のいくつかの種類を探しています(beingviewed現在のページを保存)

私はその弾力のあなたのアイデアを願っていますHow to start

+0

私はepub.jsを使用しました。* XML解析エラー:要素が見つかりませんでした。*ロケーション行番号1列番号1.いくつかのリンクを提供することで、私に助けを借ります。 – user969275

+0

あなたのフレームワークは何ですか?あなたはどこかにそれを公開しましたか? – yasirmturk

1

Jonathan Wight(schwa)は、iPhone上でePubドキュメントを解析して表示するためのObjCソリューションを開発しました。彼のTouchCodeオープンソースリポジトリの一部です。

+0

TouchCodeオープンソースのリンクを私に教えてください – Hiren

+0

http://code.google.com/p/touchcode/source/browse/Experimental/?r=e621eadd838d7733f5025e16733fccb967eb2325#Experimental%2FTouchBook –

3

そこには、オープンソースプロジェクトのFBReaderや、

が、それはまた、iphoneをサポート

http://www.fbreader.org/about.php

+0

またはfuturepress/epub.jsもありますウェブブラウナーを介してepubと注釈を読み込みます) – JinSnow

関連する問題