摘 要: 云時代的到來,企業電子文檔的日益增長,預示著電子文檔管理工作的重要性。結合POI和Aspose等工具,提出基于POI和Aspose組件的文檔檢索和在線瀏覽實現方式。著重闡明POI與Lucene結合的文檔檢索,以及基于Aspose組件的文檔轉換和在線瀏覽的功能實現。
關鍵詞: 電子文檔; POI; Aspose; Lucene
隨著云時代的到來,企業內部的各種信息數據量也在飛速增長,正在步入大數據時代[1];企業內部每天都會產生大量的各種類型的電子文檔[2],包括各種客戶信息、產品信息、技術資料、培訓資料等。如何對這些數量龐大、種類繁多的電子文檔進行統一的管理,對于企業來說是一個亟待解決的問題。同時,對這些文檔的有效分析和管理,對于企業分析客戶信息、判斷市場走向,以及構建企業知識庫等方面都有很大的實際意義。
在這些文檔管理的工作中,需要解決文檔的保存類型和顯示方式的問題。本文主要研究了各種類型文檔的內容提取技術和文檔檢索功能實現、統一格式轉換的方法,以及在線瀏覽的問題。
1 文檔內容處理技術
1.1 常用文檔類型
常用的文檔類型包括:Microsoft Office Word、Microsoft Office Excel、Microsoft Office PowerPoint、PDF等。其中Microsoft Office 2007以前的版本均采用二進制文件格式,從2007版本開始采用新的Open XML[3]文件格式;PDF[4]作為便攜式文檔格式,具有獨立于系統軟硬件環境的版式文檔格式,在文檔管理中承擔越來越重要的地位。
1.2 POI工具介紹
POI是開源組織Apache下面的子項目,提供Java語言的API對Microsoft Office文檔的處理功能;POI支持Office 2007以前的二進制文件格式,以及Office 2007以后的Open XML格式文檔。
針對幾種主要的Office文檔,POI提供以下幾個核心類:
Word:HWPF 處理二進制文件格式(.doc),XWPF 處理Open XML文件格式(.docx)。
Excel:HSSF處理二進制文件格式(.xsl),XSSF 處理Open XML文件格式(.xslx)。
PowerPoint:HSLF 處理二進制文件格式(.ppt),XSLF 處理Open XML文件格式(.pptx)。
POI通過以上的幾個核心類,可以對Office文檔進行內容讀取和內容更新等操作;利用POI的內容提取功能,結合使用Apache的子項目Lucene全文檢索工具,可以實現對上述三大類Office文檔的全文檢索操作,大大提高對文檔的使用價值。
目前,POI還沒有針對PDF文檔格式進行處理的功能。
2 文檔轉換技術
文檔管理使用中的另一個要解決的問題是文檔轉換技術。下面討論目前比較流行的幾種轉換技術。
2.1 FlashPaper工具介紹
FlashPaper[5]是Macromedia公司開發的一款文檔轉換工具。FlashPaper支持大部分的電子文檔格式,通過虛擬打印方式轉化為swf格式,再通過Flash在線展示轉換后的swf文件。FlashPaper如下幾個特點:
(1)支持文檔類型廣泛;
(2)可以進行批量文檔轉換;
(3)轉換的swf文件可以在支持Flash的任何平臺上播放,具有跨平臺性;
同時,作為一款虛擬打印轉換工具,FlashPaper也存在以下不足:
(1)工具本身只支持Windows平臺,不具備跨平臺性;
(2)不具備多線程能力;
(3)瀏覽文檔必須支持Flash;
(4)在集成開發時,進行無縫集成比較困難。
FlashPaper作為目前應用非常廣泛的文檔轉換工具,已經應用在很多領域;包括教育、企業培訓、互聯網等;能夠在轉換后,保持原有文檔的所有排版樣式,包括段落、字體等;同時,swf的文件格式也有利于轉換后的文檔進行在線瀏覽。
2.2 Aspose文檔轉換組件
Aspose提供了一套文檔轉換的組件,用于無縫集成到其他的文檔管理系統中。目前Aspose主要有以下幾種主要的套件:
(1)Aspose.Words, 用于處理Office Word文檔(.doc,.docx);
(2)Aspose.Cells, 用于處理Office Excel文檔(.xls, .xlsx);
(3)Aspose.Slides,用于處理Office PowerPoint文檔(.ppt, .pptx);
(4)Aspose.Pdf,用于處理Pdf文檔。
Aspose提供了不同版本的組件,包括.Net平臺組件、Java平臺組件、Cloud API、Android平臺組件等,以滿足不同的開發集成需要。
Aspose提供的組件有豐富的文檔操作API,主要包括:文檔內容讀取、創建文檔、編輯文檔特定內容、操作文檔內容的樣式、文檔格式轉換等。這些功能只要通過簡單地調用組件提供的API就可以實現,可方便地集成到系統中。
與FlashPaper不同,Aspose的組件提供文檔轉換API,可以將文檔統一轉換為HTML格式,直接通過瀏覽器就可以查看;轉換后也基本上保留了文檔原有的樣式。轉換后的HTML格式,則更有利于在各種平臺進行瀏覽,甚至包括移動終端,只要能夠查看HTML即可。
Aspose的使用流程圖如圖1所示。
Aspose作為組件工具,具有以下的優點:可與應用系統無縫集成;具有多種平臺版本可供選擇,有一定的跨平臺性;豐富文檔操作API;可以進行多線程操作;可以進行多種格式的轉換,并且支持HTML格式輸出。
Aspose作為一套強大的文檔管理組件,能夠完成幾乎所有用戶需要的文檔操作需求;而這些操作可以完全由這些組件的API獨立完成,不需要任何其他的支持;同時,在操作和轉換文檔的過程中,能夠基本完美地保留原有的樣式,實現文檔的無失真轉換和操作。
3 應用研究
在企業電子文檔管理系統中,需要包含很多模塊,如文檔上傳下載、文檔版本控制、文檔備份管理、歸檔管理、文檔檢索、文檔瀏覽等;本文主要研究文檔的檢索和文檔的在線瀏覽兩個模塊。
3.1 文檔檢索
文檔檢索,主要就是系統根據用戶輸入的關鍵字,搜索出包含相應關鍵字的文檔。檢索方式包括:
(1)屬性檢索:在屬性字段中匹配搜索關鍵字,如作者、文檔創建時間、文檔主題等;
(2)全文檢索:在文檔的全文中匹配搜索關鍵字。
首先通過POI工具提供的API讀取電子文檔的屬性和內容;讀取的內容如果是中文,還需要進一步的分詞、語義分析等操作;根據讀取的內容使用Lucene建立 文檔的索引,供文檔檢索時使用;用戶檢索文檔時,輸入搜索關鍵字,調用Lucene的檢索API,完成對文檔的檢索操作。文檔檢索模塊的流程如圖2所示。
3.2 文檔在線瀏覽
為了能夠更方便地進行在線瀏覽,本文選擇將文檔統一轉換為HTML格式,這樣可以隨時隨地通過瀏覽器進行在線瀏覽并且具備最好的跨平臺性。
本文采用前文提到的Aspose組件,集成到文檔管理系統中;通過Aspose提供的轉換API完成電子文檔轉換為HTML的工作。Aspose組件的使用相對比較簡單,以Java版本為例,.docx文檔的轉換過程大致如下:
try {
Document doc = new Document(fileName);
HtmlFixedSaveOptions sv1 = new HtmlFixedSaveOptions();
sv1.setPageIndex(0);
sv1.setPageCount(doc.getPageCount());
sv1.setPrettyFormat(true);
sv1.setExportEmbeddedCss(true);
sv1.setExportEmbeddedFonts(true);
sv1.setExportEmbeddedImages(true);
doc.save("output.html", sv1);
} catch (Exception e1) {
e1.printStackTrace();
}
通過如上的轉換,就可以將電子文檔轉換為HTML格式。在用戶瀏覽文檔時,直接調用該文檔對應的HTML即可。
針對電子文檔管理系統中的文檔檢索和在線瀏覽兩大功能,本文提出了基于POI結合Lucene的文檔檢索功能實現,以及使用Aspose組件實現文檔轉為HTML格式,進行在線瀏覽。POI和Lucene都是Apache下的子項目,具有一脈相承的特點,能夠很好地結合應用,實現文檔檢索功能;Aspose作為一款強大文檔處理組件,能夠將多種文檔類型統一地轉換成HTML格式,實現文檔最大程度的跨平臺在線瀏覽。
目前已經有很多成熟的文檔管理系統以及知識庫系統等。本文從不同的角度,提供更多文檔管理中的技術實現方式,以及更多的技術選擇。
參考文獻
[1] 馮偉.大數據時代面臨的信息安全機遇和挑戰[J]. 中國科技投資,2012(34):49-53.
[2] 閆冬. 電子文檔管理的現狀、特點以及建議[J]. 長春教育學院學報,2009,25(03):144-145.
[3] RICE F. Introducing the Office (2007) Open XML File Formats[EB/OL].Microsoft Corporation.(2006-05)[2014-03] http://msdn.microsoft.com/en-us/ms406049(office.12).aspx.
[4] 孫殷, 王鵬. PostScript文件與PDF文件間數據轉換[J]. 微型機與應用,2013,32(11):19-21.
[5] 祁興華, 鮑劍洋. 基于FlashPaper的教學網站文檔轉換系統的研究與設計[J].辦公自動化, 2012(11):59-60.