El formato EPUB reúne un montón de especificaciones / formatos diferentes:
- uno para decir cómo debería verse el contenido del libro (un subconjunto de XHTML 1.1 + CSS)
- uno para definir un "manifiesto" que enumere todos los archivos que componen ese contenido (OPF, que es un archivo XML)
- uno para definir cómo está empaquetado todo (OEBPS: un archivo zip de todo en el manifiesto más algunos archivos adicionales)
Las especificaciones parecen un poco desalentadoras, pero en realidad una vez que tienes los conceptos básicos (descomprimir, analizar XML) no es particularmente difícil o complejo.
Deberá averiguar cómo descargar el EPUB, descomprimirlo en algún lugar, analizar el manifiesto y luego mostrar el contenido relevante.
Algunos consejos si recién está comenzando:
Para mostrar contenido, solo use un UIWebView
por ahora.
Aquí hay un alto nivel paso a paso para su código:
1) crea una vista con un UIWebView
2) descarga el archivo EPUB
3) descomprímalo en un subdirectorio en la carpeta de documentos de su aplicación usando la biblioteca zip, vinculada arriba
4) analizar el archivo XML en META-INF/container.xml
(si este archivo no existe, el EPUB no es válido) usando TBXML, vinculado arriba
5) En este XML, busque el primer "archivo raíz" con media-type application/oebps-package+xml
. Este es el archivo OPF del libro.
6) analizar el archivo OPF (también XML)
7) ahora necesitas saber cuál es el primer capítulo del libro.
a) cada uno <item>
en el <manifest>
elemento tiene un id y un href. Guárdelos en un lugar NSDictionary
donde la clave sea el id y el objeto sea el href.
b) Mira el primero <itemref>
en el <spine>
. Tiene un atributo idref que corresponde a uno de los identificadores en (a). Busque esa identificación en el NSDictionary
y obtendrá un href.
c) este es el archivo del primer capítulo que se muestra al usuario. Calcule cuál es la ruta completa (pista: es donde descomprimió el archivo zip en (3) más el directorio base del archivo OPF en (6))
8) crea un NSURL
uso fileURLWithPath:
, donde la ruta es la ruta completa desde (7c). Cargue esta solicitud con el UIWebView
que creó en (1).
Deberá implementar botones de avance / retroceso o deslizamientos o algo para que los usuarios puedan moverse de un capítulo a otro. Utilice <spine>
para averiguar qué archivo mostrar a continuación: <itemrefs>
en el XML están en el orden en que deberían aparecer para el lector.
Aparentemente, EPUB es "solo" un formato XML, por lo que si tiene un analizador xml y la especificación , debería estar bien.
¿Más un poco de tuto ? ¡Que te diviertas!
EDITAR: también puede leer algo de código aquí , esto es para generar epub, no leerlos, pero el código puede ser útil.
EDITAR de nuevo: y vea los enlaces a la pregunta relacionada en la barra lateral derecha, hay algunos enlaces en las respuestas al lector de libros electrónicos gratuito que admiten ePub.
EDITAR 3: Debe agregar un comentario cuando edite su pregunta para que las personas que le respondan puedan continuar la discusión (si no comenta, no nos daremos cuenta de su edición).
Por lo tanto, el análisis falla porque no leyó la especificación o preguntas relacionadas en Stack Overflow ... El archivo * .epub es una carpeta comprimida que contiene archivos XML, no XML simple.
fuente
Leí este tutorial una vez (se requiere registro gratuito, lo siento) y me brindó una excelente introducción a ePub. Tutorial deverloperWorks aquí
Le sugiero que consulte algunas de las bibliotecas de procesamiento XML. Si solo desea obtener información específica del archivo XML, puede elegir la estrategia de análisis correcta.
fuente
hay un fbreader de proyectos de código abierto,
también es compatible con iphone
http://www.fbreader.org/about.php
fuente
Estoy jugando para crear un epub-framework para aplicaciones de iPhone.
Por el momento (realmente acabo de empezar) puedo generar una página de título con enlaces a los capítulos.
Mi enfoque es
En este momento estoy investigando pageflip, algún tipo de interfaz gráfica de usuario y problemas menores de usabilidad (guarde la página actual que se está viendo)
Espero que te dé una idea de cómo empezar
fuente
Jonathan Wight (schwa) ha desarrollado una solución ObjC para analizar y mostrar documentos ePub en el iPhone. Es parte de su repositorio de código abierto TouchCode.
fuente