EPUB es un formato de archivo de libro electrónico que utiliza la extensión de archivo ".epub" . El término es la abreviatura de publicación electrónica y, en ocasiones, se estiliza como ePUB . EPUB es compatible con muchos lectores electrónicos y hay software compatible disponible para la mayoría de los teléfonos inteligentes, tabletas y computadoras. EPUB es un estándar técnico publicado por el Foro Internacional de Publicaciones Digitales (IDPF). Se convirtió en un estándar oficial del IDPF en septiembre de 2007, reemplazando al antiguo estándar Open eBook (OEB). [2]
El Grupo de Estudio de la Industria del Libro respalda el EPUB 3 como el formato elegido para empaquetar contenido y ha declarado que la industria editorial mundial de libros debería unirse en torno a un estándar único. [3] Técnicamente, un archivo en formato EPUB es un archivo ZIP que consta de archivos XHTML que contienen el contenido, junto con imágenes y otros archivos de soporte. EPUB es el formato de libro electrónico basado en XML independiente del proveedor más ampliamente admitido; es compatible con casi todos los lectores de hardware y muchos lectores de software y aplicaciones móviles . [4]
EPUB 2.0, sucesor de la estructura de publicación de libros electrónicos abiertos , se aprobó en octubre de 2007, [5] con una actualización de mantenimiento (2.0.1) aprobada en septiembre de 2010. [6]
La especificación EPUB 3.0 entró en vigor en octubre de 2011, y fue reemplazada por una actualización de mantenimiento menor (3.0.1) en junio de 2014. [7] Las nuevas características principales incluyen soporte para diseño preciso o formato especializado (Documentos de diseño fijo), como por ejemplo para cómics. , [8] y compatibilidad con MathML . La versión actual de EPUB es 3.2, vigente desde el 8 de mayo de 2019. [9] La especificación de formato (el texto de) se reorganizó [10] y se limpió; El formato admite recursos alojados de forma remota y nuevos formatos de fuentes ( WOFF 2.0 y SFNT ) [11] y utiliza HTML y CSS más puros . [12]
En mayo de 2016, los miembros del IDPF aprobaron la fusión del World Wide Web Consortium (W3C), [13] "para alinear completamente la industria editorial y la tecnología web central". [14]
EPUB 2.0 fue aprobado en octubre de 2007, con una actualización de mantenimiento (2.0.1) destinada a aclarar y corregir erratas en las especificaciones que se aprobaron en septiembre de 2010. [6] La versión EPUB 2.0.1 consta de tres especificaciones:
.epub
archivo en XML. [16]EPUB utiliza internamente XHTML o DTBook (un estándar XML proporcionado por DAISY Consortium) para representar el texto y la estructura del documento de contenido, y un subconjunto de CSS para proporcionar diseño y formato. XML se utiliza para crear el manifiesto del documento, la tabla de contenido y los metadatos EPUB . Finalmente, los archivos se empaquetan en un archivo zip como formato de embalaje.
Un archivo EPUB utiliza XHTML 1.1 (o DTBook) para construir el contenido de un libro a partir de la versión 2.0.1. Esto es diferente de las versiones anteriores (OEBPS 1.2 y anteriores), que utilizaban un subconjunto de XHTML. Sin embargo, existen algunas restricciones sobre ciertos elementos. El tipo MIME para documentos XHTML en EPUB es application/xhtml+xml
. [15] [un]
El estilo y el diseño se realizan utilizando un subconjunto de CSS 2.0, denominado hojas de estilo OPS . Esta sintaxis especializada requiere que los sistemas de lectura admitan solo una parte de las propiedades CSS y agreguen algunas propiedades personalizadas. Las propiedades personalizadas incluyen oeb-page-head, oeb-page-foot,
y oeb-column-number
. La incrustación de fuentes se puede lograr usando la @font-face
propiedad, así como también incluyendo el archivo de fuente en el manifiesto del OPF (ver más abajo). El tipo MIME para documentos CSS en EPUB es text/css
. [15] [b]
EPUB también requiere que las imágenes PNG , JPEG , GIF y SVG sean compatibles con los tipos MIME image/png, image/jpeg, image/gif, image/svg+xml
. Se permiten otros tipos de medios, pero los creadores deben incluir representaciones alternativas utilizando tipos compatibles. [15] Para obtener una tabla de todos los tipos MIME requeridos, consulte la Sección 1.3.7 de la especificación.
Se requiere Unicode y los productores de contenido deben utilizar codificación UTF-8 o UTF-16 . [15] Esto es para apoyar libros internacionales y multilingües. Sin embargo, los sistemas de lectura no están obligados a proporcionar las fuentes necesarias para mostrar cada carácter Unicode, aunque sí deben mostrar al menos un marcador de posición para los caracteres que no se pueden mostrar completamente. [15]
Un esqueleto de ejemplo de un archivo XHTML para EPUB se ve así:
<?xml versión="1.0" codificación="UTF-8" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11 /DTD/xhtml11.dtd"> < html xmlns = "http://www.w3.org/1999/xhtml" xml:lang = "en" > < head > < meta http-equiv = contenido "Tipo de contenido" = "application/xhtml+xml; charset=utf-8" /> < título > Orgullo y prejuicio </ título > < enlace rel = "hoja de estilo" href = "css/main.css" tipo = "texto/css" / > </ cabeza > < cuerpo > ... </cuerpo> </html>
El propósito de la especificación OPF es "[definir] el mecanismo mediante el cual los diversos componentes de una publicación OPS se unen y proporciona estructura y semántica adicionales a la publicación electrónica". [16] Esto se logra mediante dos archivos XML con las extensiones .opf
y .ncx
.
El archivo OPF, tradicionalmente denominado content.opf
, alberga los metadatos del libro EPUB, el manifiesto del archivo y el orden de lectura lineal. Este archivo tiene un elemento raíz package
y cuatro elementos secundarios: metadata
, manifest
, spine
y guide
. Además, el package
nodo debe tener el unique-identifier
atributo. El tipo MIME del archivo .opf es application/oebps-package+xml
. [16]
El metadata
elemento contiene toda la información de metadatos de un archivo EPUB en particular. Se requieren tres etiquetas de metadatos (aunque hay muchas más disponibles): title
, language
y identifier
. title
contiene el título del libro, language
contiene el idioma del contenido del libro en formato RFC 3066 o sus sucesores, como el RFC 4646 más reciente y identifier
contiene un identificador único para el libro, como su ISBN o una URL . El identifier
atributo id
debe ser igual al unique-identifier
atributo del package
elemento. [16] [c]
El manifest
elemento enumera todos los archivos contenidos en el paquete. Cada archivo está representado por un item
elemento y tiene los atributos id
, href
, media-type
. Todos los XHTML (documentos de contenido), hojas de estilo, imágenes u otros medios, fuentes incrustadas y el archivo NCX deben aparecer aquí. Sólo no se deben incluir el .opf
archivo en sí, el archivo container.xml
, ni los archivos. [16]mimetype
El spine
elemento enumera todos los documentos de contenido XHTML en su orden de lectura lineal. Además, también se debe incluir cualquier documento de contenido al que se pueda acceder a través de enlaces o la tabla de contenido. El toc
atributo de spine
debe contener el id
del archivo NCX que figura en el manifiesto. El de cada itemref
elemento idref
se establece en el id
de su documento de contenido respectivo. [16]
El guide
elemento es un elemento opcional con el fin de identificar los componentes estructurales fundamentales del libro. Cada reference
elemento tiene los atributos type
, title
, href
. Los archivos a los que se hace referencia href
deben aparecer en el manifiesto y se les permite tener un identificador de elemento (por ejemplo, #figures
en el ejemplo). [16] [d]
Un archivo OPF de ejemplo:
<?xml versión="1.0"?> < versión del paquete= "2.0" xmlns= "http://www.idpf.org/2007/opf" identificador-único= "BookId" > <metadatos xmlns:dc= "http://purl.org/dc/elements/1.1/" xmlns:opf= "http://www.idpf.org/2007/opf" > <dc:title> Orgullo y prejuicio </dc:title> <dc:language> es </dc:language> <dc:identifier id= "BookId" opf:scheme= "ISBN" > 123456789X </dc:identifier> <dc:creator opf:file- as= "Austen, Jane" opf:role= "aut" > Jane Austen </dc:creator> </metadata> <manifest> <item id= "capítulo1" href= "chapter1.xhtml" media-type= "aplicación/xhtml+xml" /> <item id= "apéndice" href= "appendix.xhtml" media-type= "aplicación /xhtml+xml" /> < id del artículo= "hoja de estilo" href= "style.css" tipo de medio= "text/css" /> < id del artículo= "ch1-pic" href= "ch1-pic.png" media-type= "image/png" /> <item id= "myfont" href= "css/myfont.otf" media-type= "application/x-font-opentype" /> <item id= "ncx" href = "toc.ncx" tipo-medio= "aplicación/x-dtbncx+xml" /> </manifest> <spine toc= "ncx" > <itemref idref= "capítulo1" /> <itemref idref= "apéndice" /> </spine> <guide> <reference type= "loi" title= "Lista de ilustraciones" href= "appendix.xhtml#figures" /> </guide> </paquete>
El archivo NCX ( archivo de control de navegación para X ML ), tradicionalmente denominado , contiene la tabla de contenidos jerárquica del archivo EPUB. La especificación para NCX fue desarrollada para Digital Talking Book (DTB), es mantenida por DAISY Consortium y no forma parte de la especificación EPUB. El archivo NCX tiene un tipo MIME de .toc.ncx
application/x-dtbncx+xml
Es de destacar aquí que los valores de los elementos docTitle
, docAuthor
y meta name="dtb:uid"
deben coincidir con sus análogos en el archivo OPF. Además, el meta name="dtb:depth"
elemento se establece igual a la profundidad del navMap
elemento. navPoint
Los elementos se pueden anidar para crear una tabla de contenido jerárquica. navLabel
El contenido de es el texto que aparece en la tabla de contenidos generada por los sistemas de lectura que utilizan el .ncx. El elemento navPoint
de content
apunta a un documento de contenido enumerado en el manifiesto y también puede incluir un identificador de elemento (por ejemplo #section1
). [16] [18]
En la Sección 2.4.1 de la especificación se encuentra una descripción de ciertas excepciones a la especificación NCX tal como se usa en EPUB. La especificación completa para NCX se puede encontrar en la Sección 8 de las Especificaciones del libro parlante digital . [18]
Un archivo .ncx de ejemplo:
<?xml versión="1.0" codificación="UTF-8"?> <!DOCTYPE ncx PUBLIC "-//NISO//DTD ncx 2005-1//ES" "http://www.daisy.org/z3986 /2005/ncx-2005-1.dtd"><ncx version= "2005-1" xml:lang= "es" xmlns= "http://www.daisy.org/z3986/2005/ncx/" > <head> <!-- Los siguientes cuatro elementos de metadatos son necesarios para todos los documentos NCX, incluidos aquellos que se ajustan a las restricciones relajadas de OPS 2.0 --> <meta name = "dtb:uid" content= "123456789X" /> <!-- igual que en .opf --> <meta name= "dtb: Depth" content= "1" /> <!-- 1 o superior --> <meta name= "dtb:totalPageCount" content= "0" /> <!-- debe ser 0 --> <meta name= "dtb:maxPageNumber" content= "0" /> <!-- debe ser 0 --> </head> <docTitle> <text> Orgullo y prejuicio </text> </docTitle> <docAuthor> <texto> Austen, Jane </text> </docAuthor> <navMap> <navPoint class= "chapter" id= "chapter1" playOrder= "1" > <navLabel><text> Capítulo 1 </text></navLabel> <content src= "chapter1.xhtml" /> </ Punto de navegación> </ mapa de navegación> </ncx>
Un archivo EPUB es un grupo de archivos que cumplen con los estándares OPS/OPF y están empaquetados en un archivo ZIP. [19] La OCF especifica cómo organizar estos archivos en el ZIP y define dos archivos adicionales que deben incluirse.
El mimetype
archivo debe ser un documento de texto en ASCII que contenga la cadena application/epub+zip
. También debe estar descomprimido, no cifrado y ser el primer archivo del archivo ZIP. Este archivo proporciona una forma más confiable para que las aplicaciones identifiquen el tipo MIME del archivo que solo la .epub
extensión. [17]
Además, debe haber una carpeta llamada META-INF
, que contenga el archivo requerido container.xml
. Este archivo XML apunta al archivo que define el contenido del libro. Este es el archivo OPF, aunque rootfile
se permiten elementos alternativos adicionales. [17]
Además de mimetype
y META-INF/container.xml
, los demás archivos (OPF, NCX, XHTML, CSS y archivos de imágenes) se colocan tradicionalmente en un directorio llamado OEBPS
.
Una estructura de archivos de ejemplo:
--Contenedor ZIP--tipo mimeMETA-INF/ contenedor.xmlOEBPS/ contenido.opf capítulo1.xhtml ch1-pic.png css/ estilo.css mifuente.otf
Un ejemplo de contenedor.xml, dada la estructura de archivos anterior:
<?xml version="1.0" encoding="UTF-8" ?> <container version= "1.0" xmlns= "urn:oasis:names:tc:opendocument:xmlns:container" > <rootfiles> < ruta completa del archivo raíz = "OEBPS/content.opf" tipo-media= "aplicación/paquete-oebps+xml" /> </rootfiles> </container>
La especificación recomendada de EPUB 3.0 se aprobó el 11 de octubre de 2011. El 26 de junio de 2014, se aprobó EPUB 3.0.1 como una actualización de mantenimiento menor de EPUB 3.0. EPUB 3.0 reemplaza la versión anterior 2.0.1. [mi]
EPUB 3 consta de un conjunto de cuatro especificaciones: [20]
El formato EPUB 3.0 tenía como objetivo abordar las siguientes críticas:
El 26 de junio de 2014, IDPF publicó EPUB 3.0.1 como Especificación recomendada final. [23]
En noviembre de 2014, ISO / IEC publicó EPUB 3.0 como ISO / IEC TS 30135 (partes 1 a 7). [24]
En enero de 2020, ISO / IEC publicó EPUB 3.0.1 como ISO/IEC 23736 (partes 1 a 6). [25]
EPUB 3.2 se anunció en 2018, [26] y la especificación final se publicó en 2019. [27] Un cambio notable es la eliminación de un subconjunto especializado de CSS, lo que permite el uso de propiedades sin prefijo epub. Las referencias a los estándares HTML y SVG también se actualizan a la "última versión disponible", en lugar de una versión fija en el tiempo. [28]
El W3C anunció la versión 3.3 el 25 de mayo de 2023. [29] Los cambios incluyeron estándares de seguridad y privacidad más estrictos; y la adopción de los formatos multimedia WebP y Opus . [30]
El formato y muchos lectores admiten lo siguiente:
Un archivo EPUB puede contener opcionalmente DRM como capa adicional, pero las especificaciones no lo exigen. [35] Además, la especificación no nombra ningún sistema DRM en particular a utilizar, por lo que los editores pueden elegir un esquema DRM a su gusto. Sin embargo, las versiones futuras de EPUB (específicamente OCF) pueden especificar un formato para DRM. [17]
La especificación EPUB no impone ni sugiere un esquema DRM en particular . Esto podría afectar el nivel de soporte para varios sistemas DRM en los dispositivos y la portabilidad de los libros electrónicos comprados. En consecuencia, dicha incompatibilidad DRM puede segmentar el formato EPUB siguiendo las líneas de los sistemas DRM, socavando las ventajas de un formato estándar único y confundiendo al consumidor. [36] [37] [38] [39] [40] [41]
Los archivos DRMed EPUB deben contener un archivo llamado rights.xml
dentro del META-INF
directorio en el nivel raíz del contenedor ZIP. [17] [ se necesita aclaración ]
EPUB se usa ampliamente en lectores de software como Google Play Books en Android y Apple Books en iOS y macOS y lectores electrónicos de Amazon Kindle , pero no en aplicaciones asociadas para otras plataformas. iBooks también admite el formato propietario iBook, que se basa en el formato EPUB pero depende del código de la aplicación iBooks para funcionar. [42]
EPUB es un formato popular para el intercambio electrónico de datos porque puede ser un formato abierto y está basado en HTML, a diferencia del formato propietario de Amazon para lectores Kindle. Los productores populares de EPUB de dominio público y contenido con licencia abierta incluyen Project Gutenberg , Standard Ebooks , PubMed Central , SciELO y otros.
En 2022, el servicio Enviar a Kindle de Amazon eliminó la compatibilidad con su propio formato de archivo Kindle en favor de EPUB. [43] [44]
EPUB requiere que los lectores admitan los formatos HTML5 , JavaScript , CSS y SVG , lo que hace que los lectores de EPUB utilicen la misma tecnología que los navegadores web.
Dichos formatos están asociados con varios tipos de problemas de seguridad y comportamientos que violan la privacidad, por ejemplo, balizas web , CSRF , XSHM, debido a su complejidad y flexibilidad.
Estas vulnerabilidades se pueden utilizar para implementar el seguimiento web y el seguimiento entre dispositivos en archivos EPUB. [45] [46] [47]
Los investigadores de seguridad también identificaron ataques que conducían a la carga de archivos locales y otros datos de los usuarios. [48] [49]
El documento "Descripción general de EPUB 3.1" proporciona una advertencia de seguridad: [50]
Los autores deben ser conscientes de que las secuencias de comandos en una publicación EPUB pueden crear consideraciones de seguridad que son diferentes de las secuencias de comandos dentro de un navegador web. Por ejemplo, las políticas típicas del mismo origen no se aplican al contenido que se ha descargado en el sistema local de un usuario. Por lo tanto, se recomienda encarecidamente que las secuencias de comandos se limiten a contextos restringidos por contenedores.
Un archivo EPUB es un archivo que contiene, de hecho, un sitio web. Incluye archivos HTML, imágenes, hojas de estilo CSS y otros activos. También contiene metadatos. EPUB 3.3 es la última versión. Al utilizar HTML5 , las publicaciones pueden contener vídeo, audio e interactividad, al igual que los sitios web en los navegadores web. [32]
Una publicación EPUB se entrega como un único archivo. Este archivo es un archivo comprimido sin cifrar que contiene un conjunto de recursos interrelacionados. [51]
Un contenedor abstracto OCF (formato de contenedor abierto) define un modelo de sistema de archivos para el contenido del contenedor. El modelo de sistema de archivos utiliza un único directorio raíz común para todos los contenidos del contenedor. Todos los recursos (no remotos) para publicaciones están en el árbol de directorios encabezado por el directorio raíz del contenedor, aunque EPUB no exige una estructura de sistema de archivos específica para esto. El modelo de sistema de archivos incluye un directorio obligatorio llamado META-INF que es hijo directo del directorio raíz del contenedor. META-INF almacena contenedor.xml.
El primer archivo del archivo debe ser el archivo de tipo MIME . Debe estar descifrado y descomprimido para que las utilidades que no sean ZIP puedan leer el tipo MIME. El archivo mimetype debe ser un archivo ASCII que contenga la cadena "application/epub+zip". Este archivo proporciona una forma más confiable para que las aplicaciones identifiquen el tipo MIME del archivo que solo la extensión .epub. [51]
Una estructura de archivos de ejemplo:
--Contenedor ZIP--tipo mimeMETA-INF/ contenedor.xmlOEBPS/ contenido.opf capítulo1.xhtml ch1-pic.png css/ estilo.css mifuente.otf toc.ncx
Debe haber un directorio META-INF que contenga contenedor.xml. Este archivo apunta al archivo que define el contenido del libro, el archivo OPF, aunque se permiten elementos de archivo raíz alternativos adicionales. [51] Además de mimetype y META-INF/container.xml, los otros archivos (OPF, NCX, XHTML, CSS y archivos de imágenes) se colocan tradicionalmente en un directorio llamado OEBPS. Un ejemplo de contenedor.xml:
<?xml version="1.0" encoding="UTF-8" ?> <container version= "1.0" xmlns= "urn:oasis:names:tc:opendocument:xmlns:container" > <rootfiles> < ruta completa del archivo raíz = "OEBPS/content.opf" tipo-media= "aplicación/paquete-oebps+xml" /> </rootfiles> </container>
El contenedor ePUB debe contener: [52]
El contenedor ePUB puede contener:
Los documentos de contenido incluyen [53] contenido HTML 5 , documentos de navegación, documentos SVG , documentos de contenido con script y documentos de diseño fijo. Los contenidos también incluyen documentos CSS y PLS. Los documentos de navegación reemplazan la gramática NCX utilizada en EPUB 2.
Los libros con narración de audio sincronizada se crean en EPUB 3 mediante el uso de documentos superpuestos de medios para describir el momento de la narración de audio pregrabada y cómo se relaciona con el marcado del documento de contenido EPUB. El formato de archivo para Media Overlays se define como un subconjunto de SMIL . [54]
El software lector de EPUB existe para las principales plataformas informáticas, como Adobe Digital Editions y calibre en plataformas de escritorio, Google Play Books y Aldiko en Android e iOS, y Apple Books en macOS e iOS. También existe un software de edición multiplataforma para crear archivos EPUB, incluidos los programas de código abierto calibre y Sigil .
La mayoría de los navegadores web modernos también admiten complementos de lectura de EPUB . El navegador Microsoft Edge tenía la capacidad de leer EPUB integrada hasta septiembre de 2019. [55]
El siguiente software puede leer y mostrar archivos EPUB.
El siguiente software puede crear archivos EPUB.
type
se encuentra en la "Sección 2.6", ePub OPDF 2.0.1 (borrador de especificación), IDPF.