Un regard à l’intérieur d’un fichier EPUB


  • FrançaisFrançais


  • Les livres électroniques offrent un excellent moyen de lire des livres, des magazines et d’autres contenus lors de vos déplacements. Les lecteurs peuvent profiter des livres électroniques pour passer le temps pendant les longs vols et les trajets en train. Le format de fichier eBook le plus populaire est le fichier EPUB, abréviation de “publication électronique”. Les fichiers EPUB sont pris en charge sur une variété de liseuses et constituent aujourd’hui la norme pour la publication de livres électroniques.

    Le format de fichier EPUB est un standard ouvert basé sur XHTML pour le contenu et XML pour les métadonnées, contenu dans une archive de fichier zip. Et parce que tout est basé sur des standards ouverts, nous pouvons utiliser des outils communs pour créer ou examiner des fichiers EPUB. Explorons un fichier EPUB pour en savoir plus. Un guide de trucs et astuces pour la programmation en C, publié plus tôt cette année sur Opensource.com, est disponible au format PDF ou EPUB.

    Étant donné que les fichiers EPUB sont du contenu XHTML et des métadonnées XML dans un fichier zip, vous pouvez commencer par le unzip commande pour examiner l’EPUB à partir de la ligne de commande :

    $ unzip -l osdc_Jim-Hall_C-Programming-Tips.epub
    Archive: osdc_Jim-Hall_C-Programming-Tips.epub
    Length Date Time Name
    --------- ---------- ----- ----
    20 06-23-2022 00:20 mimetype
    8259 06-23-2022 00:20 OEBPS/styles/stylesheet.css
    1659 06-23-2022 00:20 OEBPS/toc.xhtml
    4460 06-23-2022 00:20 OEBPS/content.opf
    44157 06-23-2022 00:20 OEBPS/sections/section0018.xhtml
    1242 06-23-2022 00:20 OEBPS/sections/section0002.xhtml
    22429 06-23-2022 00:20 OEBPS/sections/section0008.xhtml
    [...]
    9628 06-23-2022 00:20 OEBPS/sections/section0016.xhtml
    748 06-23-2022 00:20 OEBPS/sections/section0001.xhtml
    3370 06-23-2022 00:20 OEBPS/toc.ncx
    8308 06-23-2022 00:21 OEBPS/images/image0011.png
    6598 06-23-2022 00:21 OEBPS/images/image0009.png
    [...]
    14492 06-23-2022 00:21 OEBPS/images/image0005.png
    239 06-23-2022 00:20 META-INF/container.xml
    --------- -------
    959201 41 files

    Cet EPUB contient beaucoup de fichiers, mais une grande partie est du contenu. Pour comprendre comment un fichier EPUB est assemblé, suivez le flux de processus d’un lecteur de livre électronique :

    1. Les lecteurs de livres électroniques doivent vérifier que le fichier EPUB est bien un fichier EPUB. Ils vérifient le dossier en examinant les mimetype dossier au racine des archives EPUB. Ce fichier contient une seule ligne décrivant le type MIME du fichier EPUB :

      application/epub+zip
    2. Pour localiser le contenu, les lecteurs de livres électroniques commencent par le META-INF/container.xml dossier. Il s’agit d’un bref document XML qui indique où trouver le contenu. Pour ce fichier EPUB, le container.xml le fichier ressemble à ceci :

      <?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>

      Pour faire le container.xml fichier plus facile à lire, j’ai divisé la ligne unique en plusieurs lignes et ajouté un espacement pour indenter chaque ligne. Les fichiers XML ne se soucient pas vraiment des espaces blancs supplémentaires comme les nouvelles lignes et les espaces, donc cet espacement supplémentaire n’affecte pas le fichier XML.

    3. La container.xml le fichier indique que la racine de l’EPUB commence par le content.opf fichier dans le répertoire OEBPS. L’extension OPF est due au fait que EPUB est basé sur le format Open Packaging, mais le content.opf Le fichier n’est en fait qu’un autre fichier XML.

    4. La content.opf contient un manifeste complet du contenu EPUB, plus une table des matières ordonnée, avec des références pour trouver chaque chapitre ou section. La content.opf fichier pour cet EPUB est assez long, je vais donc en montrer un peu ici à titre d’exemple.

      Les données XML sont contenues dans un <package> bloc, qui a lui-même un <metadata>bloquer, le <manifest> données, et une <spine>bloc contenant la table des matières de l’eBook :

      <?xml version="1.0" encoding="UTF-8"?>
      <package unique-identifier="unique-identifier" version="3.0" xmlns="http://www.idpf.org/2007/opf" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:opf="http://www.idpf.org/2007/opf">
      <metadata>
      <dc:identifier id="unique-identifier">osdc002</dc:identifier>
      <dc:title>Tips and Tricks for C Programming</dc:title>
      <dc:creator>Jim Hall</dc:creator>
      <dc:language>English</dc:language>
      <meta property="dcterms:modified">2022-06-23T12:09:13Z</meta>
      <meta content="LibreOffice/7.3.0.3$Linux_X86_64 LibreOffice_project/0f246aa12d0eee4a0f7adcefbf7c878fc2238db3 (libepubgen/0.1.1)" name="generator"/>
      </metadata>
      <manifest>
      ...
      <item href="sections/section0001.xhtml" id="section0001" media-type="application/xhtml+xml"/>
      <item href="images/image0003.png" id="image0003" media-type="image/png"/>
      <item href="styles/stylesheet.css" id="stylesheet.css" media-type="text/css"/>
      <item href="toc.ncx" id="toc.ncx" media-type="application/x-dtbncx+xml"/>
      ...
      </manifest>
      <spine toc="toc.ncx">
      <itemref idref="section0001"/>
      <itemref idref="section0002"/>
      <itemref idref="section0003"/>
      ...
      </spine>
      </package>

      Vous pouvez faire correspondre les données pour voir où trouver chaque section. C’est ainsi que procèdent les lecteurs d’EPUB. Par exemple, le premier élément de la table des matières fait référence à section0001 qui est défini dans le manifeste comme situé dans le sections/section0001.xhtml dossier. Le fichier n’a pas besoin d’être nommé de la même manière que l’entrée idref, mais c’est ainsi que le processus automatisé de LibreOffice Writer a créé le fichier. (Vous pouvez voir dans les métadonnées que cet EPUB a été créé avec LibreOffice version 7.3.0.3 sur Linux, qui peut exporter du contenu sous forme de fichiers EPUB.)

    Le format EPUB

    Les fichiers EPUB sont un excellent moyen de publier du contenu en utilisant un format ouvert. Le format de fichier EPUB est constitué de métadonnées XML avec un contenu XHTML, à l’intérieur d’un conteneur zip. Alors que la plupart des rédacteurs techniques utilisent des outils pour créer des fichiers EPUB, EPUB étant basé sur des normes ouvertes, vous pouvez créer vos propres fichiers EPUB d’une autre manière.

    Source

    La Rédaction

    L'équipe rédactionnnelle du site

    Pour contacter personnellement le taulier :

    Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

    Copy code