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 a veces 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 estándar anterior Open eBook (OEB). [2]
El Book Industry Study Group respalda el formato EPUB 3 como el formato de elección para empaquetar contenido y ha declarado que la industria editorial mundial debería unirse en torno a un único estándar. [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 apoyo. EPUB es el formato de libro electrónico basado en XML independiente del proveedor con mayor soporte ; es compatible con casi todos los lectores de hardware y muchos lectores de software y aplicaciones móviles . [4]
El sucesor de la Estructura de publicación de libros electrónicos abiertos , EPUB 2.0, fue aprobado 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, 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 para cómics, [8] y soporte MathML . La versión actual de EPUB es 3.2, vigente desde el 8 de mayo de 2019. [9] La especificación de formato (texto de) se sometió a una reorganización [10] y limpieza; el formato admite recursos alojados de forma remota y nuevos formatos de fuente ( 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 Consorcio World Wide Web (W3C), [13] "para alinear completamente la industria editorial y la tecnología web central". [14]
La versión EPUB 2.0 se aprobó en octubre de 2007, y en septiembre de 2010 se aprobó una actualización de mantenimiento (2.0.1) destinada a aclarar y corregir erratas en las especificaciones. [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 el Consorcio DAISY ) 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 contenidos y los metadatos de EPUB . Finalmente, los archivos se agrupan en un archivo zip como formato de empaquetado.
A partir de la versión 2.0.1, un archivo EPUB utiliza XHTML 1.1 (o DTBook) para construir el contenido de un libro. 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] [a]
El estilo y el diseño se realizan utilizando un subconjunto de CSS 2.0, conocido como OPS Style Sheets . Esta sintaxis especializada requiere que los sistemas de lectura admitan solo una parte de las propiedades CSS y agrega 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 utilizando la @font-face
propiedad , así como incluyendo el archivo de fuente en el manifiesto de OPF (ver a continuación). 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 que utilicen los tipos compatibles. [15] Para ver una tabla de todos los tipos MIME necesarios, 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 admitir libros internacionales y multilingües. Sin embargo, los sistemas de lectura no están obligados a proporcionar las fuentes necesarias para mostrar todos los caracteres Unicode, aunque sí deben mostrar al menos un marcador de posición para los caracteres que no se pueden mostrar en su totalidad. [15]
Un ejemplo de esqueleto de un archivo XHTML para EPUB se ve así:
<?xml version="1.0" encoding="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 = "Content-Type" content = "application/xhtml+xml; charset=utf-8" /> < title > Orgullo y prejuicio </ title > < link rel = "stylesheet" href = "css/main.css" type = "text/css" /> </ head > < body > ... </ cuerpo > </ html >
El propósito de la especificación OPF es "[definir] el mecanismo por el cual los diversos componentes de una publicación OPS se vinculan entre sí 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 llamado content.opf
, contiene 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 más reciente RFC 4646 y identifier
contiene un identificador único para el libro, como su ISBN o una URL . El atributo identifier
's debe ser igual al atributo del elemento. [16] [c]id
unique-identifier
package
El manifest
elemento enumera todos los archivos incluidos en el paquete. Cada archivo está representado por un item
elemento y tiene los atributos id
, href
, media-type
. Aquí se deben incluir todos los XHTML (documentos de contenido), hojas de estilo, imágenes u otros medios, fuentes incrustadas y el archivo NCX. Solo el .opf
archivo en sí, el container.xml
, y los mimetype
archivos no deben incluirse. [16]
El spine
elemento enumera todos los documentos de contenido XHTML en su orden de lectura lineal. Además, también debe incluirse cualquier documento de contenido al que se pueda acceder mediante un vínculo o la tabla de contenidos. El toc
atributo of spine
debe contener el id
del archivo NCX que figura en el manifiesto. El itemref
de cada elemento idref
se establece en el id
de su respectivo documento de contenido. [16]
El guide
elemento es un elemento opcional con el propósito 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 en href
deben estar enumerados en el manifiesto y se les permite tener un identificador de elemento (por ejemplo, #figures
en el ejemplo). [16] [d]
Un ejemplo de archivo OPF:
<?xml version="1.0"?> <paquete version= "2.0" xmlns= "http://www.idpf.org/2007/opf" unique-identifier= "BookId" > <metadata 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> <manifiesto> <item id= "capitulo1" href= "capitulo1.xhtml" tipo-medio= "aplicacion/xhtml+xml" /> <item id= "apéndice" href= "apéndice.xhtml" tipo-medio= "aplicacion/xhtml+xml" /> <item id= "hoja-de-estilo" href= "estilo.css" tipo-medio= "texto/css" /> <item id= "ch1-pic" href= "ch1-pic.png" tipo-medio= "imagen/png" /> <item id= "mi-fuente" href= "css/mi-fuente.otf" tipo-medio= "aplicacion/x-font-opentype" /> <item id= "ncx" href= "toc.ncx" tipo-medio= "aplicacion/x-dtbncx+xml" /> </manifiesto> <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 XML ) , tradicionalmente denominado , contiene la tabla de contenidos jerárquica del archivo EPUB. La especificación para NCX fue desarrollada para Digital Talking Book (DTB), la mantiene el Consorcio DAISY y no es parte de la especificación EPUB. El archivo NCX tiene un tipo MIME de .toc.ncx
application/x-dtbncx+xml
Cabe destacar 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 contenido generada por los sistemas de lectura que utilizan .ncx. navPoint
El content
elemento de apunta a un documento de contenido que aparece 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 incluye una descripción de ciertas excepciones a la especificación NCX tal como se utiliza en EPUB. La especificación completa de NCX se puede encontrar en la sección 8 de las Especificaciones para el libro hablado digital . [18]
Un ejemplo de archivo .ncx:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE ncx PUBLIC "-//NISO//DTD ncx 2005-1//EN" "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 cumplen con 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 mayor --> <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> <docAutor> <texto> Austen, Jane </texto> </docAutor> <navMap> <navPoint class= "capítulo" id= "capítulo1" playOrder= "1" > <navLabel><text> Capítulo 1 </text></navLabel> <content src= "capítulo1.xhtml" /> </navPoint> </navMap> </ncx>
Un archivo EPUB es un grupo de archivos que cumplen con los estándares OPS/OPF y están envueltos en un archivo ZIP. [19] El 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, sin cifrar 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 simplemente la .epub
extensión. [17]
Además, debe existir una carpeta denominada 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]
Aparte 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
.
Un ejemplo de estructura de archivo:
--Contenedor ZIP--tipo mimeMETA-INF/ contenedor.xmlOEBPS/ contenido.opf Capítulo 1.xhtml ch1-foto.png css/ estilo.css mifuente.otf
Un ejemplo de contenedor.xml, dada la estructura de archivo anterior:
<?xml version="1.0" encoding="UTF-8" ?> <container version= "1.0" xmlns= "urn:oasis:names:tc:opendocument:xmlns:container" > <rootfiles> <rootfile full-path= "OEBPS/content.opf" media-type= "application/oebps-package+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. [e]
EPUB 3 consta de un conjunto de cuatro especificaciones: [20]
El formato EPUB 3.0 fue diseñado para abordar las siguientes críticas:
El 26 de junio de 2014, el IDPF publicó EPUB 3.0.1 como especificación recomendada final. [23]
En noviembre de 2014, la ISO / IEC publicó EPUB 3.0 como ISO/IEC TS 30135 (partes 1-7). [24]
En enero de 2020, la 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 "versión más reciente 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 apoyan 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 menciona ningún sistema DRM en particular que se pueda 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 compatibilidad con varios sistemas DRM en los dispositivos y la portabilidad de los libros electrónicos adquiridos. En consecuencia, dicha incompatibilidad DRM puede segmentar el formato EPUB según las líneas de los sistemas DRM, socavando las ventajas de un único formato estándar y confundiendo al consumidor. [36] [37] [38] [39] [40] [41]
Los archivos EPUB protegidos por DRM deben contener un archivo llamado rights.xml
dentro del META-INF
directorio en el nivel raíz del contenedor ZIP. [17] [ aclaración necesaria ]
EPUB se usa ampliamente en lectores de software como Google Play Books en Android y Apple Books en iOS y macOS y los lectores electrónicos 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 se basa en HTML, a diferencia del formato propietario de Amazon para lectores Kindle. Entre los productores populares de EPUB de contenido de dominio público y con licencia abierta se 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 EPUB utilicen la misma tecnología que los navegadores web.
Estos formatos están asociados con varios tipos de problemas de seguridad y comportamientos que violan la privacidad, por ejemplo, balizas web , CSRF y 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 usuarios. [48] [49]
El documento "Descripción general de EPUB 3.1" proporciona una advertencia de seguridad: [50]
Los autores deben tener en cuenta que la creación de scripts en una publicación EPUB puede generar consideraciones de seguridad diferentes a las que se generan en un navegador web. Por ejemplo, las políticas típicas de origen idéntico no se aplican al contenido que se ha descargado al sistema local de un usuario. Por lo tanto, se recomienda encarecidamente que la creación de scripts se limite a contextos restringidos por contenedores.
Un archivo EPUB es un archivo que contiene, en efecto, un sitio web. Incluye archivos HTML, imágenes, hojas de estilo CSS y otros recursos. También contiene metadatos. EPUB 3.3 es la última versión. Al utilizar HTML5 , las publicaciones pueden contener video, audio e interactividad, al igual que los sitios web en los navegadores web. [32]
Una publicación EPUB se entrega como un archivo único. 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 todo el contenido del contenedor. Todos los recursos (no remotos) para publicaciones se encuentran 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 un hijo directo del directorio raíz del contenedor. META-INF almacena el archivo contenedor.xml.
El primer archivo del archivo debe ser el archivo de tipo MIME . Debe estar sin cifrar ni comprimir para que las utilidades que no sean ZIP puedan leer el tipo MIME. El archivo de tipo MIME debe ser un archivo ASCII que contenga la cadena "application/epub+zip". Este archivo proporciona una forma más fiable para que las aplicaciones identifiquen el tipo MIME del archivo que simplemente la extensión .epub. [51]
Un ejemplo de estructura de archivo:
--Contenedor ZIP--tipo mimeMETA-INF/ contenedor.xmlOEBPS/ contenido.opf Capítulo 1.xhtml ch1-foto.png css/ estilo.css mifuente.otf toc.ncx
Debe existir un directorio META-INF que contenga el archivo contenedor.xml. Este archivo apunta al archivo que define el contenido del libro, el archivo OPF, aunque se permiten elementos alternativos adicionales de rootfile. [51] Aparte 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. 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> <rootfile full-path= "OEBPS/content.opf" media-type= "application/oebps-package+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 de superposición de medios para describir el tiempo 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 superposiciones de medios se define como un subconjunto de SMIL . [54]
Existen programas de lectura de EPUB 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 existen programas 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 lectura de EPUB incorporada hasta septiembre de 2019. [55]
El siguiente software puede leer y mostrar archivos EPUB.
El siguiente software puede crear archivos EPUB.
type
está en "Sección 2.6", ePub OPDF 2.0.1 (borrador de especificación), IDPF.