[ios] ePub 형식 읽기

ePub 파일을 읽을 수있는 iPhone 애플리케이션을 개발하려고합니다. 이를 개발하는 데 사용할 수있는 프레임 워크가 있습니까? 이 파일 형식을 읽는 방법에 대해 전혀 모릅니다. NSXML 파서를 사용하여 확장명이 .epub 인 샘플 파일을 구문 분석하려고했지만 실패했습니다.



답변

EPUB 형식은 다양한 사양 / 형식을 함께 제공합니다.

  • 책의 내용이 어떤 모습이어야하는지 말하는 사람 (XHTML 1.1 + CSS의 하위 집합)
  • 콘텐츠를 구성하는 모든 파일을 나열하는 “매니페스트”를 정의하는 하나 (OPF, XML 파일)
  • 하나는 모든 것이 패키징되는 방식을 정의하는 것입니다 (OEBPS : 매니페스트의 모든 항목에 대한 zip 파일과 몇 가지 추가 파일).

사양은 다소 어렵게 보이지만 실제로 기본 (압축 풀기, XML 구문 분석)을 갖추면 특별히 어렵거나 복잡하지 않습니다.

EPUB를 다운로드하고 어딘가에 압축을 풀고 매니페스트를 구문 분석 한 다음 관련 콘텐츠를 표시하는 방법을 알아 내야합니다.

막 시작하는 경우 몇 가지 지침 :

콘텐츠를 표시하려면 지금은 a UIWebView를 사용하십시오 .

다음은 코드에 대한 높은 수준의 단계입니다.

1) a로보기 만들기 UIWebView

2) EPUB 파일 다운로드

3) 위에 링크 된 zip 라이브러리를 사용하여 앱 문서 폴더의 하위 디렉토리에 압축을 풉니 다.

4) META-INF/container.xml위에 링크 된 TBXML을 사용하여 XML 파일을 구문 분석합니다 (이 파일이 존재하지 않는 경우 EPUB은 유효하지 않음).

5)이 XML에서 media-type 인 첫 번째 “rootfile”을 찾으십시오 application/oebps-package+xml. 책의 OPF 파일입니다.

6) OPF 파일 (XML) 구문 분석

7) 이제 책의 첫 번째 장이 무엇인지 알아야합니다.

a) 각 <item><manifest>요소는 ID 및 HREF있다. NSDictionary키가 ID이고 객체가 href 인 곳에 저장 하십시오.

b) 상기 제 봐 <itemref>에서 <spine>. (a)의 ID 중 하나에 해당하는 idref 속성이 있습니다. 에서 그 ID를 NSDictionary찾으면 href를 얻을 수 있습니다.

c) 사용자에게 보여줄 첫 번째 장의 파일입니다. 전체 경로가 무엇인지 알아 내십시오 (힌트 : (3)의 zip 파일과 (6)의 OPF 파일의 기본 디렉토리를 압축 해제 한 위치).

8) NSURLusing을 만듭니다. fileURLWithPath:여기서 경로는 (7c)의 전체 경로입니다. UIWebView(1)에서 만든를 사용하여이 요청을로드합니다 .

사용자가 한 챕터에서 다른 챕터로 이동할 수 있도록 앞으로 / 뒤로 버튼 또는 스 와이프 등을 구현해야합니다. <spine>다음에 표시 할 파일을 결정하려면를 사용하십시오. <itemrefs>XML에서는 독자에게 표시되어야하는 순서대로되어 있습니다.


답변

분명히 EPUB는 “그냥”XML 형식이므로 xml 파서와 사양 이 있으면 괜찮습니다.

게다가 조금 TUTO ? 즐기세요!

편집 : 당신은 또한 여기 에서 일부 코드를 읽을 수 있습니다 . 이것은 epub를 생성하기위한 것이지 읽지 않지만 코드가 유용 할 수 있습니다.

다시 편집하십시오 : 오른쪽 사이드 바에서 관련 질문에 대한 링크를 참조하십시오 .ePub를 지원하는 무료 전자 책 리더에 대한 답변에 몇 가지 링크가 있습니다.


수정 3 : 질문을 수정할 때 댓글을 추가하여 답변하는 사람들이 토론을 계속할 수 있도록해야합니다 (댓글이없는 경우 수정 내용을 알 수 없음).

따라서 Stack Overflow에서 사양 또는 관련 질문을 읽지 않았기 때문에 구문 분석이 실패했습니다. * .epub 파일은 일반 xml이 아닌 XML 파일을 포함하는 압축 폴더입니다.


답변

이 튜토리얼을 한 번 읽었고 (무료 등록이 필요합니다. 죄송합니다) ePub에 대한 훌륭한 소개를 받았습니다. 여기 deverloperWorks 튜토리얼

XML 처리 라이브러리 중 일부를 살펴 보는 것이 좋습니다. XML 파일에서 특정 정보를 얻으려는 경우 올바른 구문 분석 전략을 선택할 수 있습니다.


답변

오픈 소스 프로젝트 fbreader가 있습니다.

그것은 또한 아이폰을 지원합니다

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


답변

나는 아이폰 앱을위한 epub 프레임 워크를 만들기 위해 arround를하고있다.

지금은 (저는 그냥 시작합니다) 챕터에 대한 링크가있는 제목 페이지를 생성 할 수 있습니다.

내 접근 방식은

  • 퀵 커넥트 아이폰 프레임 워크를 레이어로 사용 (아마도 phonegap으로 변경)하여 기본적으로 아이폰 앱으로 자바 스크립트 앱을 허용합니다.
  • UNZIPed epub를 프로젝트에 리소스로 추가
  • epub.js의 사용자 정의 버전 (google-code의 어딘가에 있음)으로 모든 것을 파싱합니다.

지금은 페이지 플립, 일종의 GUI 및 사소한 사용성 문제를 조사하고 있습니다 (현재 페이지가 표시되는 것을 저장하십시오)

시작하는 방법에 대한 아이디어를 주셨으면합니다.


답변

Jonathan Wight (schwa)는 iPhone에서 ePub 문서를 구문 분석하고 표시하기위한 ObjC 솔루션을 개발했습니다. 그의 TouchCode 오픈 소스 저장소의 일부입니다.


답변