¿Cómo puedo implementar un lector EPUB en JavaScript?

7

Me pregunto si puedo crear un lector EPUB (estándar de libros electrónicos gratuito y abierto) en JavaScript. Los requisitos básicos serían:

  1. Partes del servidor del lector EPUB desde una API de servidor.
  2. Lee los datos de EPUB en JavaScript.
  3. render en la página.
  4. Proporcione alguna funcionalidad adicional, como resaltados de texto o notas de página.

No tengo información sobre cómo podría hacer esto. Estoy dispuesto a probar un proyecto prototipo. ¿Cuáles son los pasos que podría tomar para implementar tal cosa?

    
pregunta Vlad Nicula 09.10.2012 - 14:42

1 respuesta

8

A partir de sus comentarios, parece que se encuentra en una etapa conceptual muy temprana y desea una orientación general ... bueno, eso va a ser muy difícil de dar, ya que todo el tema es bastante extenso. Pero en general, lo que quieres hacer es:

  1. Lee y analiza un archivo epub usando javascript.
  2. Genere HTML que represente el contenido (e imágenes en línea / SVG / etc).

Bueno, eso está en un nivel muy alto, y no nos ayuda mucho. Puede desglosar el paso 1 leyendo en el propio formato de epub (por ejemplo: artículo de wikipedia y información general ). Muy rápidamente, debe notar que el formato utiliza OCF para empaquetar varios archivos, por lo que su primer problema será crear un lector de OCF, lo que también significa que deberá poder descomprimir los datos en javascript (los enlaces de Florian Margaine deberían darte una idea de cómo otros han resuelto este problema). En este punto, empezaría a buscar implementaciones existentes en javascript, porque probablemente no querrá implementar todo esto desde cero. Esto es todo antes de que incluso toquemos el contenido real del archivo epub. Una vez que haya pasado este punto, debería poder leer los contenidos reales e intentar traducirlos a HTML.

Respecto al paso 2, comenzaría por observar las diversas funciones que ofrece epub (texto, estilo CSS, imágenes incrustadas, etc.) y comenzaré a atacarlas una por una, comenzando con lo que sea más rentable para mi tiempo. (probablemente texto ...).

    
respondido por el Daniel B 09.10.2012 - 15:20

Lea otras preguntas en las etiquetas