iphone - libro - Lectura de formato ePub
como hacer un libro en pages (6)
Estoy tratando de desarrollar una aplicación para iPhone para leer archivos ePub. ¿Hay algún marco disponible para desarrollar esto? No tengo idea de cómo leer este formato de archivo. Traté de analizar un archivo de muestra con extensión .epub usando NSXML Parser, pero eso falla.
Aparentemente EPUB es "solo" un formato XML, por lo que si tienes un analizador xml y la especificación debería estar bien.
¿Además un poco de tuto ? ¡Que te diviertas!
EDITAR: también puede leer algunos códigos here , esto es para generar epub, no leerlos, pero el código puede ser útil.
EDITAR otra vez: Y ver enlaces a preguntas relacionadas en la barra lateral derecha, hay algunos enlaces en las respuestas al lector de libros electrónicos gratuitos que admiten ePub.
EDIT 3: Debes agregar un comentario cuando edites tu pregunta para que las personas que te responden puedan continuar la discusión (si no haces ningún comentario, no nos fijamos en tu edición).
Por lo tanto, el análisis falla porque no leyó la especificación o las preguntas relacionadas en ... * .epub file es una carpeta comprimida que contiene archivos XML, no XML simple.
El formato EPUB reúne un conjunto de diferentes especificaciones / formatos:
- 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 enumera todos los archivos que componen ese contenido (OPF, que es un archivo XML)
- uno para definir cómo se empaqueta todo (OEBPS: un archivo zip de todo en el manifiesto más algunos archivos adicionales)
Las especificaciones parecen un poco intimidantes, pero en realidad una vez que tienes los conceptos básicos (descomprimir, analizar XML) no es particularmente difícil o complejo.
Tendrá que averiguar cómo descargar el EPUB, descomprimirlo en alguna parte, analizar el manifiesto y luego mostrar el contenido relevante.
Algunos indicadores si estás empezando:
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 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 anteriormente
4) analizar el archivo XML en META-INF/container.xml
(si este archivo no existe, el EPUB no es válido) utilizando TBXML, vinculado anteriormente
5) En este XML, encuentre el primer "archivo de raíz" con la application/oebps-package+xml
tipo de medio application/oebps-package+xml
. Este es el archivo OPF para el libro.
6) analizar el archivo OPF (también XML)
7) ahora necesitas saber cuál es el primer capítulo del libro.
a) cada <item>
en el elemento <manifest>
tiene un id y un href. Almacénelos en un NSDictionary
donde la clave es el id y el objeto es el href.
b) Mire el primer <itemref>
en el <spine>
. Tiene un atributo idref que corresponde a uno de los identificadores en (a). Busque esa identificación en NSDictionary
y obtendrá un href.
c) este es el archivo del primer capítulo para mostrar al usuario. Determine cuál es la ruta completa (sugerencia: es donde haya descomprimido el archivo zip en (3) más el directorio base del archivo OPF en (6))
8) crear un NSURL
usando fileURLWithPath:
donde la ruta es la ruta completa desde (7c). Cargue esta solicitud usando UIWebView
que creó en (1).
Tendrá que implementar botones hacia adelante / hacia atrás o deslizar o algo así para que los usuarios puedan pasar de un capítulo a otro. Utilice la <spine>
para determinar qué archivo mostrar: los <itemrefs>
en el XML están en el orden en que deberían aparecer al lector.
Estoy jugando cerca para crear un epub-framework para aplicaciones de iphone.
Por el momento (realmente recién comencé) puedo generar una página de título con enlaces a los capítulos.
Mi enfoque es
- Use quickconnect iphone framework como una capa (tal vez cambie a phonegap) que básicamente permite aplicaciones de JavaScript como aplicaciones de iphone
- Agregue el epub UNZIPed como recurso al proyecto
- Analice todo con una versión personalizada de epub.js (en algún lugar de google-code)
En este momento estoy buscando en pageflip, algún tipo de interfaz gráfica de usuario y problemas menores de usabilidad (excepto la página actual que se está viendo)
Espero que te den una idea de cómo comenzar
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.
Leí este tutorial una vez (se requiere inscripción gratuita, lo siento) y me brindó una excelente introducción a ePub. tutorial deverloperWorks aquí
Le sugiero que mire 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.
hay un fbreader de proyecto de código abierto,
también es compatible con iphone