国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于XML的電子書自排版系統(tǒng)的實現(xiàn)

2017-08-09 21:02殷克濤張煊
出版科學(xué) 2017年4期
關(guān)鍵詞:電子書

殷克濤 張煊

[摘 要] 當(dāng)前,大多數(shù)電子書制作商、加工商專注于擴充電子書庫的容量,忽略了電子書排版的質(zhì)量,造成其制作、加工的電子書普遍存在閱讀體驗差、閱讀效果不理想的問題。面對差異化的用戶需求,如何在電子書自動排版基礎(chǔ)上實現(xiàn)專業(yè)的排版效果是當(dāng)前面臨的重要問題。本文在XML基礎(chǔ)上構(gòu)建電子書E-book,并利用專業(yè)設(shè)計的參數(shù)文檔結(jié)合XSL轉(zhuǎn)化實現(xiàn)電子書自排版,基本達(dá)到了專業(yè)排版的效果。

[關(guān)鍵詞] 電子書 自排版 可擴展標(biāo)記語言

[中圖分類號] G238 [文獻標(biāo)識碼] A [文章編號] 1009-5853 (2017) 04-0040-05

Realization of the E-Book Self-Publishing System Based on XML

Yin ketao Zhang xuan

(School of Humanities, Zhejiang Gongshang University, Hangzhou, 310018)(School of Information Management, Central China Normal University, Wuhan, 430072)

[Abstract] At present, most of the book publishers focus on the expansion of their e-books library capacity, ignoring the quality of e-book typesetting, which results poor reading experience and effects. Facing the difference of user's demand, how to realize an e-book publishing system which have professional typesetting effects is the most important question that we have to deal with. In this paper, the e-book self-publishing system is built based on the XML. The system can realize the the effect of professional typesetting by using the professional design of the e-book typesetting parameters and XSL conversion.

[Key words] E-book Self-typesetting XML

1 引 言

在亞馬遜Kindle開啟電子書熱潮后,一些國內(nèi)出版企業(yè)以及電商巨頭也在積極開展電子書業(yè)務(wù)。與此同時,移動閱讀、社交媒體也在加速推動電子書的傳播與影響,強化人們的讀書興趣?!半娮訒鵁帷痹鰪娏穗娮訒鴥?nèi)容提供商和加工商對于電子書市場良好的預(yù)期,促使他們不斷將手中的資源數(shù)字化,擴充自身電子書的容量。在擴充電子書資源的同時,一些電子書制作、加工企業(yè)也在積極深化電子書加工層次,挖掘其潛在價值,進一步開發(fā)電子書資源。當(dāng)前,電子書內(nèi)容的深加工趨向愈發(fā)明顯,從數(shù)字化到內(nèi)容聚合、語義抽取,體現(xiàn)著電子書制作與加工由淺層次的粗加工轉(zhuǎn)向深層次的內(nèi)容挖掘。特別是在未來一段時間內(nèi),電子書深層次加工變得尤其重要。

盡管在2010年,原新聞出版總署在《關(guān)于發(fā)展電子書產(chǎn)業(yè)的意見》中明確提出,我們要豐富電子書內(nèi)容資源,優(yōu)化傳統(tǒng)出版資源數(shù)字化轉(zhuǎn)換質(zhì)量[1]。然而,當(dāng)前的電子書加工普遍存在版面設(shè)計不夠?qū)I(yè)、無法構(gòu)建人性化閱讀體驗的問題[2]。許多電子書僅僅是傳統(tǒng)書籍的掃描版或者內(nèi)容文字的簡單再現(xiàn),忽略了排版質(zhì)量。其結(jié)果就是閱讀體驗差、閱讀效果不理想。而純粹的人工精細(xì)排版又耗時、費力,并不被大家認(rèn)可。因此,如何將專業(yè)的排版與計算機程序自動排版相結(jié)合,成為在電子書制作、加工過程中面臨的重要問題。本文正是針對這一問題展開研究,利用可擴展標(biāo)記語言(Extensible Markup Language, XML)實現(xiàn)電子書自動排版與專業(yè)排版相結(jié)合,基本達(dá)到電子書自排版的專業(yè)化效果。

2 電子書自排版的需求

電子書在制作、加工過程中實現(xiàn)自動排版,是電子書深加工中的重要一環(huán)。其不僅可以自動實現(xiàn)專業(yè)排版效果,還可以實現(xiàn)電子書個性化輸出,提供符合用戶需求偏好的文檔。因此,電子書自動排版不僅符合電子書制作數(shù)字化的要求,同時是用戶終端多元需求的體現(xiàn),能夠帶給用戶最佳的數(shù)字內(nèi)容體驗。

2.1 滿足“一次制作、多元發(fā)布”的需求

電子書自動排版離不開用戶的需求。用戶需求的差異使得電子書生產(chǎn)商面臨多種類型文檔與跨終端排版的需求,而“一次制作、多元發(fā)布”是電子書內(nèi)容生產(chǎn)商滿足用戶差異化需求的最佳方案。所謂“一次制作、多元發(fā)布”,并不單純是介質(zhì)的不同而多元發(fā)布,有時還會因為時間、人物、地點的不同,需要以不同的風(fēng)貌和方式展示,其內(nèi)容本身有一個體系,能根據(jù)閱讀內(nèi)容產(chǎn)生新的、更為專業(yè)的內(nèi)容[3]。其中,“一次制作”要求電子書在制作過程中一次性完成電子書文檔內(nèi)容的描述,“多元發(fā)布”則能根據(jù)用戶的終端和需求發(fā)布不同樣式或內(nèi)容差異化的產(chǎn)品。前者需要我們采取通用語言來描述電子書內(nèi)容,在發(fā)布的時候能夠被識別、調(diào)取,而后者則需要自動判別用戶需求,將排好的版面內(nèi)容發(fā)布給用戶。

當(dāng)前許多電子書加工企業(yè)并沒有采取“一次制作、多元發(fā)布”模式,而更多的是采用分別制作多種類型電子書的方式來滿足供不同用戶需要的解決方案。這不僅耗費人力與資源,增加不必要的成本,同時降低了電子書制作的效率。電子書實現(xiàn)自排版則滿足多種終端用戶的多種類型文檔需求,也大大減少了電子書內(nèi)容生產(chǎn)商、加工商的工作量,降低了制作、發(fā)布成本。

2.2 內(nèi)容重組、動態(tài)重排的需要

電子書內(nèi)容的加工實際上是將電子書的內(nèi)容按照某一主題或某一特性重新組織起來展示給終端用戶。電子書的內(nèi)容再組織需要將其內(nèi)容碎片化、片段化,為內(nèi)容重組提供再組織單元。同樣,某些特定的碎片化內(nèi)容也可以按照某一特定主題需求來形成一本新書。這使得資源之間原本存在的界限變得越來越模糊,資源之間的轉(zhuǎn)換組合變得更加容易[4]。高效率的內(nèi)容重組是將電子書內(nèi)容按照某種通用的語言如XML來表述,并實現(xiàn)動態(tài)重組。通用語言能夠保持內(nèi)容交換的一致性,這也符合美國國家信息標(biāo)準(zhǔn)組織(National Information Sstandards Organization,NISO)開放發(fā)現(xiàn)倡議的要求[5]。動態(tài)重組使電子書提供平臺能實現(xiàn)內(nèi)容動態(tài)的自由組合,其實質(zhì)是電子書內(nèi)容動態(tài)的更新過程。

電子書的內(nèi)容需要重組,而重組則需要重排。重排是將內(nèi)容根據(jù)重組要求、按照某種特定樣式輸出。重組為自動重組,而重排則需要專業(yè)化排版與自動排版相結(jié)合。自動排版可以適應(yīng)內(nèi)容重組的需要,能根據(jù)用戶需求的轉(zhuǎn)變而變化。專業(yè)化排版能夠制定精美的版面效果,這往往是自動排版欠缺的。因此,在電子書內(nèi)容的動態(tài)更新中需要將二者相結(jié)合。通過設(shè)定專業(yè)的樣式文檔,再利用可靠的轉(zhuǎn)換文檔,將電子書內(nèi)容按照樣式文檔要求自動轉(zhuǎn)換成帶格式的輸出文檔,從而實現(xiàn)電子書的自排版。

當(dāng)前,我們正處在電子書交互平臺2.0時代,人們的讀、寫、評論、分享等交互性行為變得極其簡單[6]。這使一些新的電子書類型如交互式電子書、增強型電子書(Enhanced book)等新的類型在不斷呈現(xiàn),也使一些新的技術(shù)與方法也不斷在集成一些新的內(nèi)容融入到電子書中,形成新型電子書[7]。 這都需要我們充分發(fā)揮計算機自動處理能力,使電子書實現(xiàn)自動生成、自動排版,動態(tài)適應(yīng)時代的需求。

2.3 數(shù)字內(nèi)容體驗的需求

廣義的電子書,是指以傳播知識為目的,把特定的主題和內(nèi)容以一定的電子格式呈現(xiàn)在各類電子設(shè)備形態(tài)上,以方便讀者閱讀的“著作物”[8]。其中,“一定的電子格式”要求電子書不僅要注重內(nèi)容質(zhì)量,還要注重用戶的閱讀體驗和審美效果。盡管在閱讀2.0環(huán)境下,共享性和互動性對閱讀而言十分重要[9],但是良好的排版結(jié)構(gòu)往往具有更好的口碑,能夠更廣泛地在社交媒體中散播,吸引更多讀者的青睞。

電子書相對于傳統(tǒng)書籍而言是一個新事物,它一直在不斷地應(yīng)用創(chuàng)新型技術(shù)于電子書的制作、加工、發(fā)布之中。借助這些技術(shù),它為讀者帶來了全新的數(shù)字內(nèi)容體驗,也增強了自身對用戶的吸引力。電子書自排版將數(shù)字化內(nèi)容與用戶偏好的樣式結(jié)合起來,根據(jù)特殊需求,在設(shè)置特定排版條件下自動實現(xiàn)電子書輸出。它使電子書更具有可讀性與交互性。目前,一些公司如多看、亞馬遜等已經(jīng)認(rèn)識到當(dāng)前電子書閱讀體驗差的問題,正在積極著手改善排版效果,追求極致的用戶體驗,以實現(xiàn)看電子書勝于傳統(tǒng)書籍的目標(biāo)。

3 本文的解決思路

要實現(xiàn)電子書自排版,首先需要符合“數(shù)字第一”工作流程的要求。該流程是先制作一個數(shù)字文檔,通過這個電子文檔再產(chǎn)生出不同的出版格式,如EPUB電子版、蘋果電子版、網(wǎng)絡(luò)版、手機版和印刷版[10]?;谶@種解決思路,本文采取分段式方法處理電子書。首先將需要處理的文本內(nèi)容細(xì)化至段,以段為出發(fā)點,以段所包含的圖片、文字、表格等為基本處理單元,將文本內(nèi)容細(xì)化為單元塊,為以后文檔的處理提供基礎(chǔ)?!皵?shù)字第一”工作流程的基礎(chǔ)是XML標(biāo)識語言。因此,利用XML語言來描述電子書的內(nèi)容,采用XSL將其轉(zhuǎn)化為所需輸出的文檔類型,再采取參數(shù)模板形式規(guī)定樣式參數(shù),并通過調(diào)取實現(xiàn)參數(shù)傳遞,從而實現(xiàn)電子書的自排版。在整個流程中,對電子書采取“文檔—章—節(jié)—小節(jié)—段”這種結(jié)構(gòu)進行切分,而將段放置在內(nèi)容塊中,以內(nèi)容作為描述的基本單元,將文檔層層細(xì)化,最后利用樣式參數(shù)進行描述。

XML是以文本為基礎(chǔ)展示結(jié)構(gòu)信息的描述語言,也是應(yīng)用最廣泛的分享結(jié)構(gòu)信息的格式化語言之一。XML文檔采取樹形結(jié)構(gòu),具有良好的結(jié)構(gòu)性。利用XML描述電子書的優(yōu)點是能夠利用其樹形結(jié)構(gòu)來獲取它的任何枝節(jié),符合電子書內(nèi)容碎片化的要求。同時,還能增加語義方面的描述,為電子書內(nèi)容的語義檢索與進一步開發(fā)利用提供便利和支持。

電子書自排版的實現(xiàn)主要依賴獨立的參數(shù)模板來實現(xiàn)。利用XSLT中的para參數(shù)將排版的格式值設(shè)置為參數(shù)值,形成獨立的參數(shù)文檔。再利用XSL的調(diào)取功能實現(xiàn)參數(shù)調(diào)取,進而將參數(shù)值傳遞給XSLT文檔。最后利用XSLT的轉(zhuǎn)換文檔功能,將XSL文檔轉(zhuǎn)換為帶格式的FO文檔。FO文檔最終被FO處理器轉(zhuǎn)換成用戶所需類型的格式文檔輸出。獨立的參數(shù)文檔能夠根據(jù)用戶的偏好與用戶的閱讀終端設(shè)置不同的參數(shù),從而達(dá)到個性化設(shè)置,也可以采取專業(yè)的排版參數(shù)設(shè)計,實現(xiàn)專業(yè)化的自排版。本文采取專業(yè)的排版參數(shù)設(shè)計,最終輸出HTML和PDF兩種通用的電子書。

4 電子書自排版系統(tǒng)的實現(xiàn)

4.1 電子書自排版整體的結(jié)構(gòu)

整個自排版體系包含五個組成部分,如圖1所示。各個部分的功能具體如下。

基于XML的電子書。主要利用XML標(biāo)識語言來描述電子書內(nèi)容,形成基于XML標(biāo)識的電子書。在描述電子書過程中最重要的是必須建立一套有效的電子書內(nèi)容結(jié)構(gòu)體系,系統(tǒng)、完整地描述整個電子書涉及的內(nèi)容。

XSL模板庫。它由一系列模板組成,包括轉(zhuǎn)換模板、基礎(chǔ)模板、參數(shù)模板等。模板庫負(fù)責(zé)將基于XML的電子書描述為其他標(biāo)識語言所描述的文檔,實現(xiàn)基于XML的電子書到其他類型文檔的轉(zhuǎn)換描述。模板庫因轉(zhuǎn)換的對象不同而不同。本文的模板庫包含兩套,分別為HTML模板庫、FO模板庫。

轉(zhuǎn)換文檔。轉(zhuǎn)換文檔為XSLT處理器根據(jù)XSL模板庫的描述要求,將基于XML的電子書轉(zhuǎn)化為帶格式的目標(biāo)類型文檔。它是轉(zhuǎn)換描述的實現(xiàn)。本文的轉(zhuǎn)換文檔主要是HTML文檔和FO文檔。

處理器。處理器主要包含兩部分,一是轉(zhuǎn)換處理器,二是顯示處理器。轉(zhuǎn)換處理器負(fù)責(zé)將原電子書文檔轉(zhuǎn)換為轉(zhuǎn)換文檔,也將轉(zhuǎn)換文檔轉(zhuǎn)換為其他語言,如ps描述的文檔。顯示處理器負(fù)責(zé)將轉(zhuǎn)換好的文檔顯示出來,主要是PDF閱讀器、IE瀏覽器。

輸出文檔。輸出文檔為最終的顯示文檔,它由相應(yīng)的處理器自動生成。

4.2 基于XML的電子書結(jié)構(gòu)設(shè)計

本文對于電子書(E-book)的設(shè)計依據(jù)傳統(tǒng)的中文書籍的編排體例分為四部分:元信息(Meta)部分、頁面信息(Page-info)部分、章(Chapter)部分和其他信息部分,如圖2所示。元信息部分主要存放電子書的元數(shù)據(jù),主要包含作者、年份、出版社、版權(quán)等內(nèi)容信息。頁面信息部分主要包含在顯示頁面上的頁眉、頁腳部分的內(nèi)容,對應(yīng)頁面的上留白、下留白的內(nèi)容。章部分是電子書內(nèi)容的主體,它包含有章標(biāo)題、章副標(biāo)題以及節(jié)(Section)。節(jié)是由節(jié)標(biāo)題、內(nèi)容塊、小節(jié)(Part)組成。因為很多書籍在章下與節(jié)前都有章內(nèi)容的簡介或者是引導(dǎo)性的闡述,所以章也包含有內(nèi)容塊。小節(jié)是電子書存放內(nèi)容塊的主體部分,也就是包含有主要內(nèi)容的單元模塊。

內(nèi)容塊是頁面內(nèi)容的基本單元,其內(nèi)存放的是段落形式的具體內(nèi)容,是電子書主要內(nèi)容的具體存放地。內(nèi)容塊既是存放顯示內(nèi)容的地方,也是排版的對象。本系統(tǒng)需要顯示的內(nèi)容都存放在內(nèi)容塊中。段落是電子書的基本內(nèi)容。在段落里是由文本單元、圖片單元、表格單元、列表單元等組成的供顯示內(nèi)容單元。這些內(nèi)容單元對應(yīng)傳統(tǒng)書籍中的文本、圖片、表格等。

4.3 模板庫的設(shè)計

轉(zhuǎn)換模板的設(shè)計。主要是電子書內(nèi)容的XSL處理部分。轉(zhuǎn)換模板負(fù)責(zé)轉(zhuǎn)換文檔的描述、文檔結(jié)構(gòu)設(shè)計、頁面布局設(shè)計等方面的內(nèi)容,并根據(jù)不同的結(jié)果文檔構(gòu)建不同的轉(zhuǎn)換模板。本文因為輸出PDF和HTML,所以轉(zhuǎn)換模板包含HTML轉(zhuǎn)換模板和FO轉(zhuǎn)換模板。

由于可以不用分頁,HTML模板庫的轉(zhuǎn)換模板比較簡單,內(nèi)容直接放在頭(Head)部分和體(Body)部分,并利用分割元素

結(jié)合XSL的循環(huán)元素來封裝,實現(xiàn)文檔的結(jié)構(gòu)描述和內(nèi)容堆疊。對于頁面結(jié)構(gòu)布局與樣式的排版則可以直接利用CSS語言來描述。

而FO模板庫則相對比較復(fù)雜。它包含有頁面模板(layout-mast-set)、文檔樹(bookmark-tree)以及頁面排序(page-sequence)等模塊。負(fù)責(zé)文檔頁面結(jié)構(gòu)的描述,它由多個單頁面模板(simple-page-master)以及一個頁面排序模板(page-sequence-master)組成。單頁面模板通過分區(qū),主要包含有主體區(qū)(region-body)、頂部區(qū)域(region-before)、底部區(qū)域(region-after)、左部區(qū)域(region-start)、右部區(qū)域(region-end)來確定頁面布局,并利用相應(yīng)的屬性來設(shè)置區(qū)域大小。頁面排序模板來確定重復(fù)出現(xiàn)的頁面。電子書的主要內(nèi)容放置的頁面都是由它來確定的。文檔樹負(fù)責(zé)對書簽的描述,通過屬性關(guān)聯(lián)屬性(internal-destination)的值與對應(yīng)的章、節(jié)、小節(jié)的id值來建立對應(yīng)書簽聯(lián)系。頁面排序是文檔內(nèi)容的主要存放地。一部電子書可以有多個頁面排序,每個頁面排序定義一個顯示的內(nèi)容范圍。本文定了三個,分別是首頁、尾頁和可重復(fù)的中間頁。首頁對應(yīng)于傳統(tǒng)的封面頁,尾頁主要用于標(biāo)示文檔結(jié)束,可重復(fù)的中間頁是內(nèi)容存放地。每個都包含有一個流元素(flow)和多個靜態(tài)內(nèi)容元素(static-content)。在流元素中,本文利用“文檔—章—節(jié)—小節(jié)—段”這種結(jié)構(gòu),結(jié)合XSL的循環(huán)描述語句,采取文檔調(diào)取相應(yīng)的章的章(template),而章調(diào)取對應(yīng)的節(jié)的節(jié),節(jié)調(diào)取對應(yīng)的段將文檔內(nèi)容逐層描述。頁眉、頁腳的內(nèi)容放在靜態(tài)內(nèi)容區(qū)中顯示。

基礎(chǔ)模板的設(shè)計。這是電子書自排版最基本的部分,也是內(nèi)容塊中涉及段的描述部分。它負(fù)責(zé)確定段內(nèi)容的各個元素顯示的內(nèi)容以及樣式,包含文字處理、圖片處理、表格處理、列表處理等內(nèi)容。在基礎(chǔ)模板中,通過為元素設(shè)立屬性來確定樣式,而屬性的值與外部的參數(shù)模板中的參數(shù)相對應(yīng)。在這一部分我們還可以設(shè)置相應(yīng)的排版規(guī)則來約束內(nèi)容排版的設(shè)計。

參數(shù)模板的設(shè)計。參數(shù)模板由一系列參數(shù)(param)組成。它獨立于轉(zhuǎn)換模板與基礎(chǔ)模板之外。參數(shù)模板作用是向轉(zhuǎn)換模板和基礎(chǔ)模板提供排版參數(shù)。參數(shù)模板中包含文檔參數(shù)、頁面參數(shù)、段落參數(shù)、文本參數(shù)等。各個參數(shù)對應(yīng)轉(zhuǎn)換模板與基礎(chǔ)模板中元素屬性的值。參數(shù)的值決定電子書頁面的樣式與內(nèi)容顯示的效果。基礎(chǔ)模板與參數(shù)模板都通過XSL 的導(dǎo)入元素(import)導(dǎo)入到轉(zhuǎn)換模板中。

本文的參數(shù)模板中參數(shù)的值采取專業(yè)軟件的對比設(shè)計,再將設(shè)計涉及的樣式值轉(zhuǎn)換成對應(yīng)參數(shù)的值,形成參數(shù)文檔。具體的做法是:首先利用專業(yè)的排版軟件對版面進行設(shè)計,并通過大量測試,產(chǎn)生專業(yè)的排版樣式表。再通過建立XSL參數(shù)模板與樣式表映射關(guān)系,實現(xiàn)專業(yè)排版的樣式與參數(shù)模板中的參數(shù)相互對應(yīng)。最后通過映射關(guān)系,將樣式表的值轉(zhuǎn)換為參數(shù)模板中的參數(shù)值,形成參數(shù)文檔。本文在設(shè)計過程中,設(shè)計了多套參數(shù)文檔,通過改變導(dǎo)入(import)的文檔名實現(xiàn)多重樣式的選擇。同時,也允許用戶建立自己的參數(shù)文檔,利用與用戶的信息關(guān)聯(lián)達(dá)到符合自排版的效果。

4.4 轉(zhuǎn)換處理器的使用

XSLT處理器負(fù)責(zé)讀取基于XML的電子書內(nèi)容,并按照XSL文檔的處理要求生成相應(yīng)的文檔。目前相關(guān)的XSLT處理器主要有MSXML、Saxon等,本文使用的是基于GNOME項目的libxslt。

FO處理器負(fù)責(zé)讀取FO文檔,并將其轉(zhuǎn)換為其他文檔。因為FO文檔是基于XML的格式描述文檔,并不是常見的PDF文檔,需要使用FO處理器將其轉(zhuǎn)換為PDF文檔。本文使用的Apach公司開發(fā)的FOP處理器,來實現(xiàn)FO文檔到PDF文檔的轉(zhuǎn)換。

5 結(jié) 語

本文基于前面設(shè)計的XML電子書,再利用模板庫中的三類模板,實現(xiàn)HTML和PDF格式的電子書的輸出,如圖3所示。輸出的電子書帶有設(shè)計的排版參數(shù),基本上滿足格式的自排版輸出。但也存在一些不足之處,主要是自動排版采取模板模式存在靈活性不足的問題。同時,F(xiàn)OP處理器并沒有完全支持XSL-FO,因此,有些樣式因缺乏支持而沒有達(dá)到理想效果。這些都有待改進。

猜你喜歡
電子書
作文評點報·小學(xué)五、六年級(2019年16期)2019-04-30
打造自己的電子書架
探究電子書包大規(guī)模推廣的阻因及對策
淺談EPUB 3.0電子書格式
EPUB格式電子書的制作
我與電子書結(jié)了緣
電子書渲染的對象、要素及思路
基于電子書包的學(xué)習(xí)分析探究
電子書 等
電子書用戶體驗提升研究