Epub電子書的生成方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及電子書籍制作技術(shù)領(lǐng)域,具體涉及一種EPUB電子書的生成方法。
【背景技術(shù)】
[0002]隨著移動互聯(lián)網(wǎng)時代的到來,電子閱讀逐漸成為一種趨勢和潮流。愈來愈多的人通過它來獲取信息和知識,對電子書的閱讀效果也提出更高的要求。他們在關(guān)注內(nèi)容的同時,也重視布局的合理、版式的美觀、信息的直觀表達和交互,來獲得更愉悅、更舒適的閱讀體驗。
[0003]目前,很多軟件可以生產(chǎn)出成品的電子書。它們通常采用下列兩類方法:(一)固定版式的電子書。一般會選用roF、XPS、CEBX、DPUB等文件格式,將文檔的排版結(jié)果,直接輸出成版式的電子書。這種方法可以和紙質(zhì)書一樣,保留版面的布局和設(shè)計。其缺點是:在閱讀器端的適應(yīng)性較差,在屏幕大小不匹配時(如:豎屏排版的書籍在橫屏顯示、大屏排版的書籍在小屏顯示等),內(nèi)容很難自動調(diào)整;對動畫、聲音、視頻等交互對象支持較差,也限制了信息的表達方式。(二)流式內(nèi)容的電子書。一般會選用EPUB(ElectronicPublicat1n)、IBOOK等文件格式,將文檔的內(nèi)容,直接輸出成流式的電子書。這種方法在閱讀器端的適應(yīng)性較好,在屏幕大小不匹配時,內(nèi)容自動重排;對動畫、聲音、視頻等交互對象也有較好支持。其缺點是:丟棄版面的布局和設(shè)計信息,適宜出版文學(xué)、科技等內(nèi)容為主的電子書,不適宜出版烹飪、旅游、兒童等版式要求較高的電子書。
【發(fā)明內(nèi)容】
[0004]針對現(xiàn)有技術(shù)中的缺陷,本發(fā)明提供一種EPUB電子書的生成方法,實現(xiàn)了在EPUB流式內(nèi)容的基礎(chǔ)上,增加富媒體元素的應(yīng)用,使版面的交互性和動態(tài)感更強。
[0005]本發(fā)明提供了一種EPUB電子書生成方法,包括:
[0006]構(gòu)建文檔的內(nèi)容流;
[0007]在所述內(nèi)容流中插入標(biāo)簽,所述標(biāo)簽用于記錄與所述內(nèi)容流相關(guān)的信息;
[0008]將插入標(biāo)簽后的內(nèi)容流輸出成電子版EPUB文件。
[0009]可選的,所述構(gòu)建文檔的內(nèi)容流,包括:
[0010]遍歷文檔中的每個頁面,構(gòu)建頁面的內(nèi)容流;
[0011 ] 將每個頁面的內(nèi)容流串接,構(gòu)建文檔的內(nèi)容流。
[0012]可選的,所述標(biāo)簽包括版式標(biāo)簽、導(dǎo)航目標(biāo)標(biāo)簽和富媒體元素標(biāo)簽。
[0013]可選的,所述在所述內(nèi)容流中插入標(biāo)簽,包括:
[0014]根據(jù)所述文檔的排版,在所述內(nèi)容流中插入版式標(biāo)簽,用于記錄所述內(nèi)容流的版式信息;
[0015]根據(jù)所述文檔頁面內(nèi)容的引用結(jié)構(gòu),在所述內(nèi)容流中插入導(dǎo)航目標(biāo)標(biāo)簽,用于記錄所述內(nèi)容流的導(dǎo)航目標(biāo)信息;
[0016]根據(jù)所述文檔的互動內(nèi)容,在所述內(nèi)容流中插入富媒體元素標(biāo)簽,用于記錄所述內(nèi)容流的富媒體元素信息。
[0017]可選的,所述根據(jù)所述文檔的排版,在所述內(nèi)容流中插入版式標(biāo)簽,用于記錄所述內(nèi)容流的版式信息,包括:
[0018]遍歷文檔中的每個頁面,在所述每個頁面內(nèi)容流下插入頁面版式標(biāo)簽,記錄所述每個頁面的布局信息;
[0019]遍歷所述文檔中的每個對象塊,在所述每個對象塊下插入版式標(biāo)簽,記錄所述每個對象塊的位置和尺寸信息;
[0020]遍歷所述文檔中的每個文字塊,獲取所述每個文字塊的拆分位置,在所述每個文字塊拆分位置處插入分塊版式標(biāo)簽,記錄所述每個文字塊的分塊信息;
[0021]遍歷所述文字塊中的每個分欄,獲取所述每個分欄的拆分位置,在所述每個分欄拆分位置處插入分欄版式標(biāo)簽,記錄所述每個分欄的位置和尺寸信息;
[0022]遍歷所述分欄的每個文本行,獲取所述每個文本行的行拆分位置,在所述每個文本行的行拆分位置處插入文本行版式標(biāo)簽,記錄所述每個文本行的位置和尺寸信息;
[0023]遍歷所述文本行中的每個字符,根據(jù)所述每個字符的位置和屬性,構(gòu)建包含多個連續(xù)字符的文本行內(nèi)文本片段,并獲取所述每個行內(nèi)文本片段的拆分位置,在所述每個行內(nèi)文本片段的拆分位置處插入文本行內(nèi)文本片段的版式標(biāo)簽,記錄所述每個文本行內(nèi)文本片段的位置和尺寸信息。
[0024]可選的,所述根據(jù)所述文檔頁面內(nèi)容的引用結(jié)構(gòu),在所述內(nèi)容流中插入導(dǎo)航目標(biāo)標(biāo)簽,用于記錄所述內(nèi)容流的導(dǎo)航目標(biāo)信息,包括:
[0025]遍歷所述文檔中的每個頁面,在所述每個頁面的內(nèi)容流下插入頁面導(dǎo)航目標(biāo)標(biāo)簽,記錄所述每個頁面的導(dǎo)航目標(biāo)信息;
[0026]遍歷所述文檔中的每個段落,如果所述段落與所述目錄級別相匹配,則在所述段落下插入目錄導(dǎo)航目標(biāo)標(biāo)簽,記錄目錄的導(dǎo)航目標(biāo)信息;
[0027]遍歷索引中的每個索引項,查找出與所述索引項對應(yīng)的引用點,在所述引用點下插入索引導(dǎo)航目標(biāo)標(biāo)簽,記錄所述每個索引項的導(dǎo)航目標(biāo)信息;
[0028]遍歷引用結(jié)構(gòu)中的每個引用項,查找出與所述引用項對應(yīng)的引用點,在所述引用點下插入引用導(dǎo)航目標(biāo)標(biāo)簽,記錄所述每個引用項的導(dǎo)航目標(biāo)信息。
[0029]可選的,所述記錄所述內(nèi)容流的導(dǎo)航目標(biāo)信息,包括:
[0030]指定導(dǎo)航目標(biāo)的對應(yīng)引用結(jié)構(gòu)的類別;
[0031]指定導(dǎo)航目標(biāo)的對應(yīng)引用項的級別;
[0032]指定導(dǎo)航目標(biāo)的對應(yīng)引用項的ID ;
[0033]指定導(dǎo)航目標(biāo)的對應(yīng)引用項的標(biāo)題。
[0034]可選的,所述根據(jù)所述文檔的互動內(nèi)容,在所述內(nèi)容流中插入富媒體元素標(biāo)簽,用于記錄所述內(nèi)容流的富媒體元素信息,包括:
[0035]遍歷所述文檔中的互動內(nèi)容;
[0036]根據(jù)所述互動內(nèi)容的類別和屬性,選擇與所述互動內(nèi)容對應(yīng)的富媒體元素;
[0037]在所述互動內(nèi)容下插入與所述互動內(nèi)容對應(yīng)的富媒體元素,記錄所述富媒體元素的應(yīng)用信息。
[0038]可選的,所述將插入標(biāo)簽后的內(nèi)容流輸出成電子版EPUB文件,包括:
[0039]遍歷所述文檔中每個頁面的內(nèi)容流,對所述每個頁面的內(nèi)容流構(gòu)建HTML片段文件;
[0040]遍歷所述文檔中每個引用結(jié)構(gòu),為引用項以及所述HTML片段文件中的導(dǎo)航目標(biāo)標(biāo)簽之間建立鏈接,構(gòu)建導(dǎo)航片段文件;
[0041]將所述HTML片段文件與所述導(dǎo)航片段文件合并輸出成EPUB文件。
[0042]可選的,所述對所述每個頁面的內(nèi)容流構(gòu)建HTML片段文件,包括:
[0043]對所述每個頁面的內(nèi)容流,構(gòu)建中間頁面結(jié)構(gòu);
[0044]對所述每個中間頁面結(jié)構(gòu),構(gòu)建HTML片段文件。
[0045]由上述技術(shù)方案可知,本發(fā)明提供了一種EPUB電子書生成方法,該方法在EPUB流式內(nèi)容的基礎(chǔ)上,保留了頁面布局、設(shè)計等版式信息,增加富媒體元素的應(yīng)用,使版面的交互性和動態(tài)感更強,能夠更好地適應(yīng)多種移動客戶端、閱讀器,并呈現(xiàn)出豐富多彩的版面效果。
【附圖說明】
[0046]圖1為本發(fā)明一實施例提供的一種EPUB電子書生成方法的流程圖;
[0047]圖2為本發(fā)明一實施例提供的橫屏的兒童電子書的頁面排版示意圖;
[0048]圖3為本發(fā)明一實施例提供的兒童電子書在橫屏上呈現(xiàn)的效果示意圖;
[0049]圖4為本發(fā)明一實施例提供的兒童電子書在豎屏上呈現(xiàn)的效果示意圖。
【具體實施方式】
[0050]下面結(jié)合附圖,對發(fā)明的【具體實施方式】作進一步描述。以下實施例僅用于更加清楚地說明本發(fā)明的技術(shù)方案,而不能以此來限制本發(fā)明的保護范圍。
[0051]圖1示出了本實施例提供的一種EPUB電子書生成方法的流程圖,如圖1所示,該方法包括以下步驟:
[0052]101、構(gòu)建文檔的內(nèi)容流。
[0053]舉例來說,上述步驟包括圖1中未示出的子步驟:
[0054]1011、遍歷文檔中的每個頁面,構(gòu)建頁面的內(nèi)容流;
[0055]1012、將每個頁面的內(nèi)容流串接,構(gòu)建文檔的內(nèi)容流。
[0056]102、在所述內(nèi)容流中插入標(biāo)簽,所述標(biāo)簽用于記錄與所述內(nèi)容流相關(guān)的信息。
[0057]舉例來說,上述標(biāo)簽包括版式標(biāo)簽、導(dǎo)航目標(biāo)標(biāo)簽和富媒體元素標(biāo)簽。
[0058]具體的,上述步驟102還包括圖1中未示出的子步驟:
[0059]1021、根據(jù)所述文檔的排版,在所述內(nèi)容流中插入版式標(biāo)簽,用于記錄所述內(nèi)容流的版式信息;
[0060