文章出處

  epub電子書簡介

  epub全稱為Electronic Publication的縮寫,意為:電子出版, epub于2007年9月成為國際數位出版論壇(IDPF)的正式標準,以取代舊的開放Open eBook電子書標準,epub這種格式kindel目前不支持, 必須用相應的軟件打開,比如PC端用calibre,(calibre可是kindle的好伙伴, 可以用來整理或者同步kindle的書架), 如下圖:

  

  或者用 Adobe Digital Edition(這個軟件很小,解析純文本的epub就好, js和css沒有良好的支持)。

  或者安裝firefox瀏覽器的插件EPUBReader, 如下圖:

  chrome瀏覽器的插件Readium也可以用來打開epub文件(但是要FQ到google的應用中心去下載, 聽新聞說谷歌2016年要回歸了);

  等各種方式打開...

  修改epub文件的作者書名等相關信息

   epub文件用壓縮軟件打開以后直接可以看到源代碼, 所以這種格式的電子書開放性非常好, 我們可以更改它的源代碼, 比如你下載了了一本為“Rabbit, Run”epub書, 原來這本書的介紹是這樣的,

    

  通過更改epub的配置文件opf,我改了作者和書名, 再重新打包成epub文件, 變成這樣了, 感覺自己萌萌噠是不是:

   

   epub電子書的內部結構

  epub格式電子書遵循IDPF推出的OCF規范,OCF規范遵循ZIP壓縮技術,即epub電子書本身就是一個ZIP文件,我們將epub格式電子書的后綴.epub修改為.zip后,可以通過解壓縮軟件(例如winrar、winzip)進行瀏覽或解壓處理。一個未經加密處理的epub電子書以三個部分組成,其文件結構如下圖所示:

  

  1、文件:mimetype

  每一本epub電子書均包含一個名為mimetype的文件,且內容不變,用以說明epub的文件格式。文件內容如下:

application/epub+zip 

  (注釋,表示可以用epub工具和ZIP工具打開)

 

  2、目錄:META-INF

  依據OCF規范,META-INF用于存放容器信息,默認情況下(即加密處理),該目錄包含一個文件,即container.xml,文件內容如下:

<?xml version="1.0"?> 
<container version="1.0" xmlns="urn:oasis:names:tc:opendocument:xmlns:container"> 
<rootfiles> 
<rootfile full-path="OPS/content.opf" media-type="application/oebps-package+xml"/>
</rootfiles> 
</container> 

 

  container.xml的主要功能用于告訴閱讀器,電子書的根文件(rootfile)的路徑和打開放式,一般來講,該container.xml文件也不需要作任何修改,除非你改變了根文件的路徑和文件名稱。

  除container.xml文件之外,OCF還規定了以下幾個文件:
  (1)[manifest.xml],文件列表
  (2)[metadata.xml],元數據
  (3)[signatures.xml],數字簽名
  (4)[encryption.xml],加密
  (5)[rights.xml],權限管理對于epub電子書而言,這些文件都是可選的。

 

  3、目錄:OEBPS

  OEBPS目錄用于存放OPS文檔、OPF文檔、CSS文檔、NCX文檔, OEBPS這個名字是可變的,可以根據containter.xml進行配置。

  OPF文檔是epub電子書的核心文件,且是一個標準的XML文件,依據OPF規范,主要由五個部分組成:

  實例XML代碼:

<?xml version="1.0" encoding="UTF-8" ?>
<package version="2.0" unique-identifier="PrimaryID" xmlns="http://www.idpf.org/2007/opf">
    <metadata xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:opf="http://www.idpf.org/2007/opf">
        <dc:title>
            nono書名
        </dc:title>
        <dc:identifier opf:scheme="ISBN">
        </dc:identifier>
        <dc:language>
            zh-CN
        </dc:language>
        <dc:creator>
            nono
        </dc:creator>
        <dc:publisher>
            epub掌上書苑
        </dc:publisher>
        <dc:description>
        </dc:description>
        <dc:coverage>
        </dc:coverage>
        <dc:source>
            http://www.cnepub.com
        </dc:source>
        <dc:date>
            2015-11-26
        </dc:date>
        <dc:rights>
            本電子書由epubBuilder制作生成,歡迎訪問http://www.cnepub.com分享交流海量電子書。 epubBuilder僅供交流使用,未經授權,不得用于商業用途。
        </dc:rights>
        <dc:subject>
            專業書籍
        </dc:subject>
        <dc:contributor>
        </dc:contributor>
        <dc:type>
            [type]
        </dc:type>
        <dc:format>
        </dc:format>
        <dc:relation>
        </dc:relation>
        <dc:builder>
            epubBuilder
        </dc:builder>
        <dc:builder_version>
            3.1.08.28
        </dc:builder_version>
        <meta name="cover" content="cover-image" />
    </metadata>
    <manifest>
        <!-- Content Documents -->
        <item id="main-css" href="css/main.css" media-type="text/css" />
        <item id="coverpage" href="coverpage.html" media-type="application/xhtml+xml"/>
        <item id="chapter1" href="chapter1.html" media-type="application/xhtml+xml"/>
        <item id="ncx" href="fb.ncx" media-type="application/x-dtbncx+xml" />
        <item id="css" href="css/main.css" media-type="text/css" />
        <item id="cover-image" href="images/cover.jpg" media-type="image/jpeg"/>
    </manifest>
    <spine toc="ncx">
        <itemref idref="coverpage" linear="yes" />
        <itemref idref="chapter1" linear="yes" />
    </spine>
    <guide>
        <reference type="cover" title="封面" href="coverpage.html" />
    </guide>
</package>
View Code

  1、<metadata>,元數據信息的組成有兩種 (1)dc-metadata和 (2)x-metadata:

<dc-metadata>,其元素構成采用dubline core(DC)的15項核心元素,包括:

<title>:題名
<creator>:責任者
<subject>:主題詞或關鍵詞
<description>:內容描述
<contributor>:貢獻者或其它次要責任者
<date>:日期
<type>:類型
<format>:格式
<identifier>:標識符
<source>:來源
<language>:語種
<relation>:相關信息
<coverage>:履蓋范圍
<rights>:權限描述
<x-metadata>,即擴展元素。如果有些信息在上述元素中無法描述,則在此元素中進行擴展。

 

2、<menifest>,文件列表,由于列出OEBPS文檔及相關的文檔,有一個子元素構成,
<item id="" href="" media-type="">,該元素由三個屬性構成:

  id:表示文件的ID號
  href:文件的相對路徑
  media-type:文件的媒體類型

例如:

<manifest>
    <item id="main-css" href="css/main.css" media-type="text/css" />
    <item id="coverpage" href="coverpage.html" media-type="application/xhtml+xml"/>
    <item id="chapter1" href="chapter1.html" media-type="application/xhtml+xml"/>
    <item id="ncx" href="fb.ncx" media-type="application/x-dtbncx+xml" />
    <item id="css" href="css/main.css" media-type="text/css" />
    <item id="cover-image" href="images/cover.jpg" media-type="image/jpeg"/>
</manifest>

 


3、<spine toc="ncx">,脊骨,其主要功能是提供書籍的線性閱讀次序。由一個子元素構成:
  <itemref idref="">,由一個屬性構成:idref:即參照menifest列出的ID

實例代碼:

<spine toc="ncx">
    <itemref idref="coverpage" linear="yes"/>
    <itemref idref="chapter1" linear="yes"/>
</spine>

 


4、<guide>,指南,依次列出電子書的特定頁面, 例如封面、目錄、序言等, 屬性值指向文件保存地址。一般情況下,epub電子書可以不用該元素。

實例代碼:

<guide>
    <reference type="cover" title="封面"  href="coverpage.html"/>
</guide>

 


5、<tour>,導讀。可以根據不同的讀者水平或者閱讀目的, 按一定次序, 選擇電子書中的部分頁面組成導讀。一般情況下,epub電子書可以不用該元素。


 


  ncx文件是epub電子書的又一個核心文件,用于制作電子書的目錄,其文件的命名通常為toc.ncx。
  ncx文件是一個XML文件,該標準由DAISY Consortium發布(參見http://www.daisy.org)。

<?xml version='1.0' encoding='utf-8' ?>
<ncx xmlns="http://www.daisy.org/z3986/2005/ncx/" version="2005-1">
    
    <head>
        <meta content="coay_307750" name="dtb:uid" />
        <meta content="2" name="dtb:depth" />
        <meta content="COAY.COM [http://www.coay.com]" name="dtb:generator" />
        <meta content="0" name="dtb:totalPageCount" />
        <meta content="0" name="dtb:maxPageNumber" />
    </head>
    <docTitle>
        <text>
            《再窮也要去旅行》
        </text>
    </docTitle>
    <docAuthor>
        <text>
            黃愛琳
        </text>
    </docAuthor>
    <navMap>
        <navPoint class="chapter" id="article_307750_1" playOrder="1">
            <navLabel>
                <text>
                    Chapter_1
                </text>
            </navLabel>
            <content src="article_307750_1.html" />
        </navPoint>
        <navPoint class="chapter" id="article_307750_2" playOrder="2">
            <navLabel>
                <text>
                    Chapter_2
                </text>
            </navLabel>
            <content src="article_307750_2.html" />
        </navPoint>
        <navPoint class="chapter" id="article_307750_3" playOrder="3">
            <navLabel>
                <text>
                    Chapter_3
                </text>
            </navLabel>
            <content src="article_307750_3.html" />
        </navPoint>
        <navPoint class="chapter" id="article_307750_4" playOrder="4">
            <navLabel>
                <text>
                    Chapter_4
                </text>
            </navLabel>
            <content src="article_307750_4.html" />
        </navPoint>
        <navPoint class="chapter" id="article_307750_5" playOrder="5">
            <navLabel>
                <text>
                    Chapter_5
                </text>
            </navLabel>
            <content src="article_307750_5.html" />
        </navPoint>
    </navMap>
</ncx>

 

  NCX 和 OPF spine 有什么不同?

  兩者很容易混淆,兩者的區別:

    opf文件用來描述電子書章節的順序, 比如:第一章后是第二章,第二章后是第三章....

    ncx文件用來描述電子書的目錄結構, 就是紙質書的目錄;

  一條法則是 ncx包含的 navPoint 元素通常比 OPF spine 中的 itemref 元素多。實際上,spine 中的所有項都會出現在 ncx中,但 ncx可能更詳細。

 

  epub文檔結構描述的有關博客和知識:

  Epub基礎知識介紹

  epub格式電子書剖析之一:文檔構成 

  DC(Dublin Core)數字圖書館中使用的一組簡單的包括15個“核心元素”的元數據元素集合

  OCF( Open Container Format )規范

  OPF(Open Packaging Format)開放包裝格式( 開放包裝格式(OPF)2.0 v1.0 )

 

 

  后記:

    打包epub書籍時候一定要把文件夾打包成zip格式, 然后把文件后綴zip改為epub就可以打開( zip格式和rar格式并不是一樣的,雖然他們都是壓縮格式); 

  感想:

    今天去上了韓國popper -- hozin大師的課, 技術上沒有什么長進, 但是也知道hozin為poppin付出了那么多, 8歲開始學舞,12歲開始學習poppin, 到現在已經跳了18年了, 他研究樂器, 他研究如何用身體表達各種音樂, 一個鼓點在他腦袋里面有5,6種表達方式, 他也說韓國賺錢不好賺, 中國比較好賺錢,有學生問他中國和韓國poppin的區別, 他期間也說道:韓國popper很認真, 經常白天上課或者白天上班, 晚上有人跳舞, 跳到4,5點, 他以前一天都是練習12小時的,現在少了, 他很謙虛, 很認真,  我想人和人的區別就在這兒: 多堅持一點。

    很多牛逼的人又那么低調 one day  -- --  matisyahu。

  

作者: NONO
出處:http://www.cnblogs.com/diligenceday/
QQ:287101329 


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(1) 人氣()