文/盧 玲 昌 磊
2014年,數(shù)字出版技術(shù)發(fā)展迅速,包括語義出版、跨平臺閱讀、跨終端出版、結(jié)構(gòu)化加工、數(shù)字版權(quán)保護、內(nèi)容標引加工等數(shù)字出版關鍵技術(shù)均取得長足進展,對新聞出版產(chǎn)業(yè)升級起到了推動作用。
移動互聯(lián)網(wǎng)時代的終端大發(fā)展為數(shù)字內(nèi)容變革、用戶快捷獲取信息提供了史無前例的機會。內(nèi)容跨終端發(fā)布創(chuàng)造了內(nèi)容生產(chǎn)和消費的新模式,數(shù)字出版產(chǎn)業(yè)鏈相關環(huán)節(jié)發(fā)生了巨大的轉(zhuǎn)變,未來的數(shù)字閱讀必將跨平臺、跨終端。雖然不同讀者選擇的閱讀終端、閱讀方式不同,但只有好的體驗讀者才能樂意付費。本文就數(shù)字內(nèi)容跨終端出版技術(shù)的應用進行詳細闡述。
結(jié)構(gòu)化的PDF(便攜式文檔格式Portable Document Format)具有跨平臺、跨操作系統(tǒng)的特性,能夠使得文檔數(shù)字化,并且可以通過網(wǎng)絡進行發(fā)行和信息傳播。PDF側(cè)重于文檔打印格式的描述,缺乏對文檔數(shù)據(jù)結(jié)構(gòu)的描述,即缺乏對PDF文檔版面信息的分析和抽取,制約了跨終端數(shù)字出版。XML(可擴展標記語言Extensible Markup Language)是面向內(nèi)容的,能夠描述文檔的語義信息,可以根據(jù)不同終端設備的特性自動重新編排,以最適合于出版的方式呈現(xiàn)。綜上,圖書的跨終端數(shù)字出版能夠基于XML文檔進行,其他格式的文檔也可以考慮轉(zhuǎn)換成為XML文檔。
1.D T D (Document Type Definition)設計。DTD是一套關于標記符的語法規(guī)則,一種保證XML文檔格式正確的有效方法。XML文檔中的元素、標志及其相互之間的關系都是通過DTD文檔來規(guī)范的。這樣的DTD文檔設計主要包括:標題(Title)、作者(Author)、出版社(Publisher)、章節(jié)(Section)、鏈接(Link)等。
2. PDF的文檔結(jié)構(gòu)。(1)PDF文檔的對象。(Direct Object) 和間接對象(Indirect Object)兩大類,具體見表1。
(2)PDF文檔的物理結(jié)構(gòu)。PDF的文件物理結(jié)構(gòu)分為:文件頭、文件主體、交叉引用表和文件尾,見表2。
表1 PDF對象情況
表2 PDF的物理結(jié)構(gòu)
PDF文檔的邏輯結(jié)構(gòu)。PDF的邏輯結(jié)構(gòu)描述了PDF文檔中各對象之間的關系,如圖所示。樹的根節(jié)點就是Catalog對象,Page Tree、Outline Tree、Thread Tree和Name Destination為根節(jié)點下面的四棵子樹。PDF的頁面內(nèi)容(如文字、圖形、圖像)保存在頁面對象流對象(Content Stream)中。
Page Tree包含著該文件的頁面對象最重要的信息;Outline Tree每個節(jié)點都是一個書簽(Bookmark),對應著文檔中的具體的頁面位置;Thread Tree以樹型結(jié)構(gòu)形式表現(xiàn)了文章線索和線索下的文章塊;Name Destination是字符串和頁面區(qū)域間關聯(lián)關系的描述。
圖 PDF的邏輯結(jié)構(gòu)
3. PDF文檔的版面分析與內(nèi)容提取。(1)PDF文檔內(nèi)容流的解碼。PDF文檔內(nèi)容流的解碼是從文件尾Trailer的解析開始,Trailer中交叉引用表的地址和PDF文檔的Catalog根對象控制整個內(nèi)容流,解析步驟如下。①文件尾Trailer保存著交叉引用表的偏移地址,即以Startxref開始緊跟著偏移地址。②關鍵字“xref”為交叉引用表的開始字段,再找到代表Catalog的偏移地址,Catalog對象根節(jié)點找到頁節(jié)點對象Page Tree。③Page Tree子節(jié)點表示頁對象,因此可以直接訪問到頁對象Page中內(nèi)容流Content Stream。④解析Content Stream時需要根據(jù)對象中關鍵字Filter提供的算法類型來進行相應地解析。PDF中使用的工業(yè)標準壓縮算法有ASCII85Decode、LZWDecode、Flate Decod 、DCT Decode 、RunLengthDecode、CCITTFaxDecode等十種標準的過濾器。⑤解析后的內(nèi)容流包括了PDF文本內(nèi)容的重要信息,如每個頁面每行的文本內(nèi)容Content,每行的位置(x,y)Position,文本內(nèi)容的字體類型FontType和字體大小FontSize等。⑥PDF文檔篇章結(jié)構(gòu)信息的解析從PDF文檔中的Bookmark開始,每個Bookmark指向文檔的一個位置,可以轉(zhuǎn)換成文檔中的章節(jié)信息。⑦PDF文檔中沒有對段落信息進行描述,因此對于段落的判斷需要依靠一些判定規(guī)則來實現(xiàn)。PDF文檔描述了所顯示內(nèi)容在頁面中的具體坐標,而這些具體坐標能夠作為大致判斷段落位置的依據(jù),再加上輔助修正從而給出內(nèi)容的段落信息。
(2)PDF文檔版面分析。經(jīng)過解碼后的PDF文檔,根據(jù)PDF的篇章結(jié)構(gòu)和段落劃分形成獨立的段落模塊,重新對PDF的版面進行描述。將PDF文檔進行模塊的劃分,形成一個個獨立的段落模塊,然后進行版面的標引分析。通過版面分析我們才可以識別PDF中的各種數(shù)據(jù)元素,如段落、標題、表格等。版面分析后的PDF可以獲得一份結(jié)構(gòu)化的數(shù)據(jù),這些數(shù)據(jù)可以組織成XML格式或者以數(shù)據(jù)庫的形式存儲起來,在以后進行重新轉(zhuǎn)換或者輸出時就會變的容易;同時支持獨立段落模塊之間的合并、拆分功能,實現(xiàn)PDF的文檔內(nèi)容的編輯。
數(shù)字圖書跨終端的實現(xiàn)是由服務器端根據(jù)客戶端的請求生成適合閱讀終端的頁面,下載到終端并在終端上進行顯示。服務器端處理數(shù)字圖書的繪制工作。對于PC或者具備較大屏幕的移動閱讀終端,服務器端生成原始版面終端,供終端的通用瀏覽器實現(xiàn)下載閱讀。以頁面為下載單位,這樣讀者可以看到原版原式的文檔。對于小屏幕的移動終端,服務器端會根據(jù)移動終端的具體屏幕大小,將存儲的流式和結(jié)構(gòu)化數(shù)據(jù)快速生成重新繪制后的“html”頁面,在客戶端進行閱讀呈現(xiàn)。由于傳輸?shù)氖恰癶tml”,因此通用瀏覽器本身的格式重新排版能力可以提供較好的閱讀體驗。
閱讀終端重繪制首先是頁面坐標空間的轉(zhuǎn)換。PDF版式文檔描述的基礎是文本的坐標空間,在進行PDF文檔轉(zhuǎn)換成XML時已經(jīng)記錄下了PDF文檔內(nèi)部文本的坐標空間。服務器端根據(jù)具體的客戶端生成每一頁的繪制指令并完成繪制工作,繪制的內(nèi)容包括文字、圖形等,然后向客戶端發(fā)送該頁面數(shù)據(jù)。
在進行數(shù)字圖書跨終端出版過程中,重點在于文檔分析和跨終端重構(gòu)。本文就PDF文檔對數(shù)字圖書重新組織技術(shù)進行了一些闡述。轉(zhuǎn)化得到的XML文件不僅可以用于數(shù)字圖書跨終端出版,還可以進行信息的檢索和過濾等。
[1]王江泰,張貴倉.基于XML的PDF文檔認證和完整性保護的實現(xiàn)[J].蘇州科技學院學報,2010(3).
[2]楊道良,常明.PDF及其在電子出版領域的應用[J].計算機應用,1999(19).
[3]宋艷娟,張德文.基于XML的PDF文檔信息抽取系統(tǒng)的研究[J].現(xiàn)代圖書情報技術(shù),2005(9).
[4]何忠平.圖像數(shù)據(jù)壓縮技術(shù)在PDF中的應用研究[D].哈爾濱:哈爾濱工程大學,2004.