一種富文本文檔的生成方法與裝置制造方法【專利摘要】本發(fā)明公開了一種富文本文檔的生成方法與裝置。該方法包括:預(yù)先建立規(guī)則庫,獲取用戶當(dāng)前時刻編輯的文檔對應(yīng)的明文源碼文件,所述明文源碼文件攜帶待插入要素的標(biāo)識;若所述明文源碼文件中攜帶的要素的標(biāo)識在所述規(guī)則庫中存在,從數(shù)據(jù)庫中讀取該要素標(biāo)識對應(yīng)的內(nèi)容;根據(jù)該要素的類型,采用規(guī)則庫中定義的與該類型對應(yīng)的編碼規(guī)則對讀取的所述內(nèi)容編碼,以獲得讀取內(nèi)容對應(yīng)的明文源碼;將編碼得到的明文源碼插入到所述明文源碼文件中,將編碼得到的明文源碼組合到所述明文源碼文件中得到目標(biāo)富文本文檔對應(yīng)的明文源碼文件。本發(fā)明提供的技術(shù)方案,可以保證獲取到的數(shù)據(jù)的準(zhǔn)確性、全面性和及時性;在一定程度上保持文檔整體風(fēng)格的統(tǒng)一。【專利說明】一種富文本文檔的生成方法與裝置【
技術(shù)領(lǐng)域:
】[0001]本發(fā)明涉及數(shù)據(jù)庫、文檔編碼【
技術(shù)領(lǐng)域:
】,特別是涉及一種富文本文檔的生成方法與裝置?!?br>背景技術(shù):
】[0002]在信息化高速發(fā)展的今天,數(shù)據(jù)已經(jīng)成為了各個行業(yè)的基礎(chǔ),如何有效的分析數(shù)據(jù)、使用數(shù)據(jù)已經(jīng)成為了企業(yè)或個人成功的重要因素。對于日益發(fā)展的管理類系統(tǒng)來說,如何將收集上來的數(shù)據(jù)進行有效的分析和整合,并根據(jù)用戶特點進行個性化展示,最終形成內(nèi)容豐富的富文本文檔,已成為企業(yè)與個人迫切的管理需求。[0003]所謂的富文本是指含有字體、段落格式、圖片、表格等內(nèi)容的文檔,比如WORD文檔、WPS文檔等。舉個例子來說,比如在企業(yè)中被廣泛使用的報告,就是富文本文檔的一種典型應(yīng)用,報告是反映各級部門管理狀況,揭示主要風(fēng)險點,提出管理建議的主要方式,是獲取管理數(shù)據(jù)的主要渠道,也是管理層進行管理決策,監(jiān)管機構(gòu)進行監(jiān)管,投資者進行評估的主要依據(jù)。因此,各類管理報告成為管理層管理的基礎(chǔ),受到各企業(yè)的普遍重視。如今,隨著信息化系統(tǒng)的建立和整合,數(shù)據(jù)的采集渠道越來越完善,如何更好的對系統(tǒng)采集上來的數(shù)據(jù)進行應(yīng)用和分析,也成為現(xiàn)下管理層關(guān)注的重點,然而現(xiàn)階段,更多的報告生成主要依賴各級部門采用手動收集,系統(tǒng)查詢,報表統(tǒng)計等方式進行提取,然后寫入文檔中進行整合編寫,再上報給各級主管部門的方式進行,由于采用人為收集和人為輸入到文檔中的方式,導(dǎo)致報告中的數(shù)據(jù)很難保證其準(zhǔn)確性,最終形成的報告的風(fēng)格很難保證統(tǒng)一,同時,報告的全面性、及時性也會大打折扣?!?br/>發(fā)明內(nèi)容】[0004]為解決上述技術(shù)問題,本發(fā)明實施例提供一種富文本文檔的生成方法與裝置,以解決現(xiàn)有技術(shù)中形成富文本文檔時,比如報告,人為采集信息、撰寫導(dǎo)致的文檔風(fēng)格不統(tǒng)一,文檔信息全面性、真實性、及時性無法保證的技術(shù)問題。本發(fā)明提供技術(shù)方案如下:[0005]一種富文本文檔的生成方法,包括:[0006]預(yù)先建立規(guī)則庫,所述規(guī)則庫中定義了所有能夠插入到待生成富文本文檔中的要素的標(biāo)識以及針對不同類型要素的編碼規(guī)則;[0007]獲取用戶當(dāng)前時刻編輯的文檔對應(yīng)的明文源碼文件,所述明文源碼文件攜帶待插入要素的標(biāo)識;[0008]判斷所述明文源碼文件中攜帶的要素的標(biāo)識在所述規(guī)則庫中是否存在,若存在,從數(shù)據(jù)庫中讀取該要素標(biāo)識對應(yīng)的內(nèi)容;[0009]根據(jù)該要素的類型,采用規(guī)則庫中定義的與該類型對應(yīng)的編碼規(guī)則對讀取的所述內(nèi)容編碼,以獲得讀取內(nèi)容對應(yīng)的明文源碼;[0010]將編碼得到的明文源碼插入到所述明文源碼文件中得到目標(biāo)富文本文檔對應(yīng)的明文源碼文件,以便于通過導(dǎo)出該文件形成目標(biāo)富文本文檔。[0011]本發(fā)明還提供一種富文本文檔的生成裝置,包括:[0012]規(guī)則建立模塊,建立規(guī)則庫,所述規(guī)則庫中定義了所有能夠插入到待生成富文本文檔中的要素的標(biāo)識以及針對不同類型要素的編碼規(guī)則;[0013]獲取模塊,獲取用戶當(dāng)前時刻編輯的文檔對應(yīng)的明文源碼文件,所述明文源碼文件攜帶待插入要素的標(biāo)識;[0014]判斷模塊,用于判斷所述明文源碼文件中攜帶的要素的標(biāo)識在所述規(guī)則庫中是否存在;[0015]讀取模塊,用于所述明文源碼文件中攜帶的要素的標(biāo)識在所述規(guī)則庫中存在時,從數(shù)據(jù)庫中讀取該要素標(biāo)識對應(yīng)的內(nèi)容;[0016]編碼模塊,用于根據(jù)該要素的類型,采用規(guī)則庫中定義的與該類型對應(yīng)的編碼規(guī)則對讀取的所述內(nèi)容編碼,以獲得讀取內(nèi)容對應(yīng)的明文源碼;[0017]組合模塊,用于將編碼得到的明文源碼插入到所述明文源碼文件中得到目標(biāo)富文本文檔對應(yīng)的明文源碼文件,以便于通過導(dǎo)出該文件形成目標(biāo)富文本文檔。[0018]由以上本發(fā)明實施例提供的技術(shù)方案可見,本發(fā)明提供的技術(shù)方案與現(xiàn)有技術(shù)相t匕,至少存在如下優(yōu)點:[0019]需要生成富文本文檔時,如果待生成文檔對應(yīng)的明文源碼文件中有待插入的要素標(biāo)識,而且該標(biāo)識在定義的規(guī)則庫中存在,則直接從數(shù)據(jù)庫中讀取該要素標(biāo)識對應(yīng)的內(nèi)容,由于所需的數(shù)據(jù)不是人為搜集整合的,而是從后臺數(shù)據(jù)庫直接讀取的,由于后臺數(shù)據(jù)庫一般會保留歷史數(shù)據(jù),并實時更新,所以從后臺數(shù)據(jù)庫直接讀取數(shù)據(jù)可以保證獲取到的數(shù)據(jù)的準(zhǔn)確性、全面性和及時性。獲取數(shù)據(jù)后,根據(jù)規(guī)則庫中定義的針對所述要素類型的編碼規(guī)則將獲取的內(nèi)容編碼為明文源碼,并將編碼得到的明文源碼組合到待生成文檔的明文源碼文件中,此時生成的是富文本文檔對應(yīng)的明文源碼,而用戶通過文檔編輯軟件即時看到的是插入了待插入要素對應(yīng)內(nèi)容的文檔。由于待插入內(nèi)容由系統(tǒng)統(tǒng)一編碼形成,無需用戶自己手動輸入,可以在一定程度上保持文檔整體風(fēng)格的統(tǒng)一?!緦@綀D】【附圖說明】[0020]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明中記載的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,還可以根據(jù)這些附圖獲得其他的附圖。[0021]圖1為本發(fā)明提供的一種富文本文檔的生成方法實施例1的流程圖;[0022]圖2為本發(fā)明提供的一種富文本文檔的生成裝置實施例1的結(jié)構(gòu)示意圖;[0023]圖3為本發(fā)明提供的一種富文本文檔的生成裝置在實際應(yīng)用場景下的一種實現(xiàn);[0024]圖4為圖3所示的應(yīng)用場景下實現(xiàn)時對應(yīng)的規(guī)則庫的簡明示意圖?!揪唧w實施方式】[0025]為了使本【
技術(shù)領(lǐng)域:
】的人員更好地理解本發(fā)明中的技術(shù)方案,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員所獲得的所有其他實施例,都應(yīng)當(dāng)屬于本發(fā)明保護的范圍。[0026]本發(fā)明提供一種富文本文檔的生成方法與裝置,可以用來生成富文本文檔,比如報告,其核心思想在于,在用戶當(dāng)前時刻正在編輯的文檔中插入內(nèi)容時,只需將待插入內(nèi)容編碼為明文源碼的格式插入到明文源碼文件中,通過導(dǎo)出明文源碼文件,用戶即可看到生成的富文本文檔。下面對本發(fā)明提供的一種富文本文檔的生成方法,進行詳細(xì)介紹。[0027]如圖1所示,為本發(fā)明提供的一種富文本文檔的生成方法實施例1的流程圖,本實施例具體可以包括如下步驟:[0028]SlOl:建立規(guī)則庫。[0029]所述規(guī)則庫具體可以定義用戶在生成富文本文檔時,可以在其中插入的要素對應(yīng)的標(biāo)識,所述要素是指一個具體的文本、表格或者圖片,該標(biāo)識可以為定義的特殊字符、或者定義的快捷鍵。比如,對于要素為本季度業(yè)績表,則針對該要素的標(biāo)識可以為:@{}(特殊字符)、或@+#(快捷鍵),需要說明,這里設(shè)置的要素的標(biāo)識只要可以保證該標(biāo)識是唯一的即可,在實際應(yīng)用中可以根據(jù)具體的使用場景具體設(shè)置,這里不作限定。[0030]另外,規(guī)則庫中還定義了針對不同類型的待插入要素的編碼規(guī)則,這里的要素類型是指文本、表格或者圖片,因為不同類型的要素在形成的富文本文檔中對應(yīng)的編碼格式不同;富文本文檔是用戶在文檔編輯軟件中打開并進行編輯形成的,針對不同類型(比如WORD或WPS)、版本(比如2003或2007版本)的文檔編輯軟件,不同的要素類型對應(yīng)的編碼格式也不同。建立規(guī)則庫之后,針對待插入的內(nèi)容只要根據(jù)其對應(yīng)的編碼方式進行編碼即可被打開待生成的富文本文檔的文檔編輯軟件識別打開。[0031]S102:獲取用戶當(dāng)前時刻編輯的文檔對應(yīng)的明文源碼文件。[0032]在現(xiàn)有技術(shù)中,用戶采用文檔編輯軟件編輯并生成一具有表格、圖片等內(nèi)容較為豐富的文檔時,普遍的方式是用戶在第三方軟件(比如VIS10)中編輯好表格或者圖片后,插入到用戶的文檔中,但是這種方式仍然是用戶手動輸入的方式,容易出錯,而且對用戶編輯的信息進行實時更新較為復(fù)雜,需要多次手動輸入新的信息。[0033]因此可以分析文檔對應(yīng)的明文源碼文件,該文件可以認(rèn)為是一個文檔對應(yīng)的代碼文件,根據(jù)該文件可以知道文本數(shù)據(jù)、表格和圖片等要素在文檔中顯示時對應(yīng)的代碼格式,并依據(jù)該代碼格式創(chuàng)建針對不同要素類型(文本數(shù)據(jù)、表格和圖片)的編碼規(guī)則,同時為了獲取文本數(shù)據(jù)、表格數(shù)據(jù)和圖片數(shù)據(jù)需要存儲待插入要素對應(yīng)的標(biāo)識,用戶使用不同的文檔編輯軟件,其獲取待生成富文本文檔在當(dāng)前時刻的明文源碼文件的方式有所不同。若用戶使用的文檔編輯軟件為WORD或WPS,優(yōu)選的,則可以采用NTKO控件,為用戶提供在線編輯界面,該控件可以調(diào)用用戶客戶端中已經(jīng)安裝的文字編輯軟件,同時支持將用戶當(dāng)前編輯的文件轉(zhuǎn)換為明文源碼文件提交到后臺,比如MHT格式的文件,該文件中攜帶待插入要素的標(biāo)識,同樣該標(biāo)識以明文源碼的形式存在。[0034]需要說明,本發(fā)明中所說的用戶正在編輯的文檔不僅僅是指沒有任何內(nèi)容的空白文檔,還可以是已經(jīng)具有一定內(nèi)容的文檔,其中,該文檔已經(jīng)具有的內(nèi)容可以是用戶輸入的文字、插入的表格或圖片,在此基礎(chǔ)上,用戶通過本發(fā)明提供的方案繼續(xù)生成富文本文檔。[0035]S103:判斷所述明文源碼文件中攜帶的要素的標(biāo)識在所述規(guī)則庫中是否存在,若存在,進入步驟S104。[0036]當(dāng)用戶編輯文檔時,依據(jù)步驟SlOl中的例子,如果用戶在編輯的文檔中輸入了O{},那么獲取到待生成富文本文檔在當(dāng)前時刻的明文源碼文件后,可以在規(guī)則庫中查找該標(biāo)識,如果規(guī)則庫中有O{},則從后臺數(shù)據(jù)庫讀取該標(biāo)識對應(yīng)的內(nèi)容。[0037]S104:從數(shù)據(jù)庫中讀取該要素標(biāo)識對應(yīng)的內(nèi)容。[0038]S105:根據(jù)該要素的類型,采用規(guī)則庫中定義的與該類型對應(yīng)的編碼規(guī)則對讀取的所述內(nèi)容編碼。[0039]在步驟S104中獲取數(shù)據(jù)后,該數(shù)據(jù)內(nèi)容并不能直接顯示在文檔中,需要對該內(nèi)容的格式進行編輯,以使該內(nèi)容能夠為用戶當(dāng)前使用的文檔編輯軟件識別,具體的,根據(jù)獲取的明文源碼文件可以確定待生成富文本文檔對應(yīng)的文檔編輯軟件的類型和版本,根據(jù)標(biāo)識可以確定待插入的是文本、表格還是圖片,然后根據(jù)確定的文檔編輯軟件類型和版本對應(yīng)的要素類型的編碼規(guī)則,對獲取的數(shù)據(jù)進行編碼(格式轉(zhuǎn)換)。為了便于理解,以MSWORD為例介紹要素為類型為表格和圖片的編碼,當(dāng)待插入數(shù)據(jù)為表格數(shù)據(jù)時,對應(yīng)的明文源碼如下:[0040]〈tableclass=3DMsoTable,Gridborder=3Dlcellspacing=3D0cellpadding=3D0[0041]style=3D’border-collapse:collapse;border:none;mso-border-alt:solidwindowtext.5pt;[0042]mso-yft1-tbllook:480;mso-padding-alt:0cm5.4pt0cm[0043]5.4pt;mso-border-1nsideh:[0044].5ptsolidwindowtext;mso-border-1nsidev:.5ptsolidwindowtext'>[0045]<trstyle=3D’mso-yft1-1row:0;mso-yft1-firstrow:yes'>[0046]<tdwidth=3Dl14valign=3Dtopstyle=3D,width:85.2pt;border:solidwindowtextl.0pt;[0047]mso-border-alt:solidwindowtext.5pt;padding:0cm5.4pt0cm5.4pt’>[0048]<pclass=3DMsoNormal><spanlang=3DEN-USXo:p> </o:p></spanX/p>[0049]</td>[0050]</tr>......多行多列略[0051]〈/table〉[0052]需要注意的是Class=SDMsoTableGrid是WORD生成MHT文件時定義的類型屬性,與style屬性共同使得表格在文檔中打開時,可以保存與文檔本身一致的風(fēng)格。而在WPS文檔中源碼中不存在SDMsoTableGrid對象,且style定義的值也有所差別,所以對于兩類源文件需要分別處理改造,而改造后的文件,可以由兩種軟件共同打開,界面差異也僅僅局限于兩種軟件兼容效果的不同而已。[0053]圖片信息在MHT文件中,有一定的存在格式,經(jīng)分析,文件源碼中一共有七個部分涉及到圖片的內(nèi)容,如果此文件中已經(jīng)存在圖片,則只需要添加與圖片本身相關(guān)的后三個部分,如果文件中不存在圖片,則需要將此七部分補充完整。具體七部分改造說明如下:[0054]I)在MIME-Version:1.0后面插入Content-Type屬性[0055]2)替換ContentLocation后面的文件名為實際文件名[0056]3)替換:office:office[0057]為:vml〃xmlns:o=3D〃urn:schemas-microsoft-com:office:office^[0058]4)在〈...filelist.xml〃>后面添加linkrel及style屬性信息[0059]5)在“body”標(biāo)簽下,添加<pclass=3DMsoNormal>類及圖形屬性等信息[0060]6)</html>后面添加圖片內(nèi)容,圖片信息是以Base64碼存儲,根據(jù)要插入的圖片可以獲得其Base64碼。[0061]7)在圖片內(nèi)容后添加文件列表信息o:FileHRef=3D〃〃[0062]S106:將編碼得到的明文源碼插入到所述待生成文檔的明文源碼文件中。[0063]當(dāng)待插入內(nèi)容對應(yīng)的數(shù)據(jù)被編碼成明文源碼之后,將編碼后的形成的源碼插入到該文檔的明文源碼文件中,具體的,可以將編碼得到的源碼替換掉原明文源碼文件中要素標(biāo)識,或者插入到要素標(biāo)識處(當(dāng)用戶在文檔編輯軟件中打開最終生成的富文本文檔時,該標(biāo)識可以隱藏不顯示),此時,文檔對應(yīng)的源碼文件是更新之后的,包括了待插入的內(nèi)容的源碼,該明文源碼文件導(dǎo)出到到用戶前臺通過文檔編輯軟件打開即為生成的富文本文檔。用戶在文檔編輯軟件中看到的是新的源碼文件對應(yīng)的內(nèi)容,如果插入的是表格,用戶則可以在文檔編輯軟件中看到插入的表格,即富文本文檔已經(jīng)生成。如果此時生成的富文本文檔還未達到用戶的最終要求,則可以按照本實施例提供的方法繼續(xù)插入內(nèi)容。[0064]本實施例提供的技術(shù)方案,需要生成富文本文檔時,如果待生成文檔對應(yīng)的明文源碼文件中有待插入的要素標(biāo)識,而且該標(biāo)識在定義的規(guī)則庫中存在,則直接從數(shù)據(jù)庫中讀取該要素標(biāo)識對應(yīng)的內(nèi)容,由于所需的數(shù)據(jù)不是人為搜集整合的,而是從后臺數(shù)據(jù)庫直接讀取的,由于后臺數(shù)據(jù)庫一般會保留歷史數(shù)據(jù),并實時更新,所以從后臺數(shù)據(jù)庫直接讀取數(shù)據(jù)可以保證獲取到的數(shù)據(jù)的準(zhǔn)確性、全面性和及時性;[0065]獲取數(shù)據(jù)后,根據(jù)規(guī)則庫中定義的針對所述要素類型的編碼規(guī)則將獲取的內(nèi)容編碼為明文源碼,并將編碼得到的明文源碼組合到待生成文檔的明文源碼文件中,此時生成的是富文本文檔對應(yīng)的明文源碼,而用戶通過文檔編輯軟件即時看到的是插入了待插入要素對應(yīng)內(nèi)容的文檔。由于待插入內(nèi)容由系統(tǒng)統(tǒng)一編碼形成,無需用戶自己手動輸入,可以在一定程度上保持文檔整體風(fēng)格的統(tǒng)一。[0066]在實施例1中,所述待插入內(nèi)各的標(biāo)識為:定乂的特殊子符、或者定乂的快捷鍵。而用戶可能要插入的要素多種多樣,比如,待插入表格有季度業(yè)績表、年度業(yè)績表等等,如果采用用戶輸入(編輯)的方式,用戶需要記憶很多標(biāo)識,尤其是以特殊字符、或者快捷鍵作為標(biāo)識時,對于用戶來說記憶量是非常大的,不方便用戶使用。為此,在實施例1的基礎(chǔ)上,可以采用菜單的形式,具體為,在編輯富文本文檔的軟件界面上設(shè)置菜單,在該菜單中設(shè)置不同要素的名稱,當(dāng)用戶需要插入內(nèi)容時,可以打開該菜單,在下拉列表中選擇對應(yīng)的名稱。此種方式,無需用戶記憶標(biāo)識,便于用戶使用。需要說明的是,所述菜單中包括的內(nèi)容還可以是要素名稱和對應(yīng)的標(biāo)識,具體如何顯示菜單中的內(nèi)容,這里不做限定,菜單中至少包括要素名稱即可,為了便于用戶操作,還可以將不同類型的要素分別對應(yīng)一個菜單,或者在一個菜單中分區(qū)顯示不同類型的要素,具體的可以根據(jù)用戶的實際應(yīng)用場景進行具體設(shè)置,這里不做具體限定。[0067]相應(yīng)于上面的方法實施例,本發(fā)明還提供一種富文本文檔的生成裝置,參考圖2所示,為所述裝置實施例1的結(jié)構(gòu)示意圖,所述裝置包括:[0068]規(guī)則建立模塊21,用于建立規(guī)則庫,所述規(guī)則庫中定義了所有能夠插入到待生成富文本文檔中的要素的標(biāo)識以及針對不同類型要素的編碼規(guī)則;[0069]獲取模塊22,用于獲取用戶當(dāng)前時刻編輯的文檔對應(yīng)的明文源碼文件,所述明文源碼文件攜帶待插入要素的標(biāo)識;[0070]判斷模塊23,用于判斷所述明文源碼文件中攜帶的要素的標(biāo)識在所述規(guī)則庫中是否存在;[0071]讀取模塊24,用于所述明文源碼文件中攜帶的要素的標(biāo)識在所述規(guī)則庫中存在時,從數(shù)據(jù)庫中讀取該要素標(biāo)識對應(yīng)的內(nèi)容;[0072]編碼模塊25,用于根據(jù)該要素的類型,采用規(guī)則庫中定義的與該類型對應(yīng)的編碼規(guī)則對讀取的所述內(nèi)容編碼,以獲得與接收的明文源碼文件格式相同的明文源碼;[0073]組合模塊26,用于將編碼得到的明文源碼插入到所述明文源碼文件中得到目標(biāo)富文本文檔對應(yīng)的明文源碼文件,以便于通過導(dǎo)出該文件形成目標(biāo)富文本文檔。[0074]優(yōu)選的,所述明文源碼文件中攜帶的待插入要素標(biāo)識的生成方法可以為:在用戶當(dāng)前時刻編輯的文檔中需要插入要素的位置,顯示用戶輸入的待插入要素的標(biāo)識。[0075]或者,所述明文源碼文件中攜帶的待插入要素標(biāo)識的生成方法可以為:在用戶當(dāng)前時刻編輯的文檔所在的應(yīng)用界面上新建菜單,所述菜單至少包括待生成富文本文檔中能夠插入要素的名稱;從新建菜單中選擇待插入要素對應(yīng)的名稱;將選擇的要素對應(yīng)的名稱映射為要素對應(yīng)的標(biāo)識,并顯示在待插入要素的位置。[0076]優(yōu)選的,所述組合模塊具體用于將編碼得到的明文源碼替換所述明文源碼文件中待插入要素的標(biāo)識。[0077]或者,所述組合模塊具體用于將編碼得到的明文源碼插入到所述待插入要素的標(biāo)識在明文源碼文件中的位置,所述待插入要素的標(biāo)識隱藏顯示。[0078]為了描述的方便,描述以上裝置時以功能分為各種單元分別描述。當(dāng)然,在實施本發(fā)明時可以把各單元的功能在同一個或多個軟件和/或硬件中實現(xiàn)。[0079]為了便于對本發(fā)明技術(shù)方案的理解,下面以本方案在實際中一種可能的應(yīng)用場景為例進行說明,參考圖3所示,為本發(fā)明提供的一種富文本文檔的生成方法在實際應(yīng)用場景下的一種實現(xiàn),隨著計算機使用的普及,WINDOWS系統(tǒng)被廣泛應(yīng)用,使得大部分用戶習(xí)慣了使用WORD進行文檔的編寫和文檔的生成,因此,為了保持這種習(xí)慣,在實際應(yīng)用中可以采用NTKO插件,為用戶提供在線WORD編輯功能,如果用戶使用WORD生成一個文本,用戶只需編寫文本的基本框架,在需要插入表格或者圖片的地方,輸入要素標(biāo)識即可,無需用戶手動插入。而系統(tǒng)服務(wù)器部署在Linux、Unix服務(wù)器的系統(tǒng),對MSOFFICE文檔的支持很有限,為了使用Linux、Unix服務(wù)器系統(tǒng)的用戶正常的分析文檔,并動態(tài)插入內(nèi)容,優(yōu)選的,使用MHT(MHT是MMEHTML的縮寫,是一種用來保存HTML文件的格式)文件作為明文源碼文件,因為MHT文件有如下特點:[0080]第一,這種文件格式可以被NTKO(OFFICE辦公軟件的一種控件)很好的支持,包括保存及打開。第二,MHT文件類型可以被WORD、WPS等文檔工具以DOC的形式打開及編輯。第三,MHT文件是XML格式的明文的文件,可以把文件作為一個很長的字符串進行處理,通過分析MHT格式的文件中明文源碼的組織方式、關(guān)鍵標(biāo)簽格式等,將源碼作為字符串的形式,利用字符串算法可以定位、替換、分割、連接等操作,根據(jù)所編輯文檔動態(tài)編輯的需求,對源碼分析與改造,并保證MHT文件的格式不被損壞,生成可被用戶打開的含有豐富內(nèi)容的文檔。對于MHT文件的分析改造,可分為對標(biāo)記位進行識別替換、對圖片進行動態(tài)插入、對表格進行動態(tài)生成等功能,處理復(fù)雜度大大降低。[0081]如圖3所示,為實際應(yīng)用場景下對應(yīng)的文檔生成方法,其中,規(guī)則庫(參考圖4所示的規(guī)則庫示意簡圖,存儲在系統(tǒng)后臺,作為各階段參照比對時查詢使用,是整個文檔生成機制的標(biāo)準(zhǔn)庫,并可不斷充實更新。)分為變量規(guī)則及文檔編碼規(guī)則。其中,通過變量規(guī)則識別用戶設(shè)置的需要替換或者插入的變量(對應(yīng)上述內(nèi)容中的要素)內(nèi)容,從后臺查詢對應(yīng)的業(yè)務(wù)數(shù)據(jù);通過文檔編碼規(guī)則分析用戶文檔本身,定位編輯文檔的版本為MSWORD、WPS等,提供生產(chǎn)表格、圖片的編碼段引用。其中變量規(guī)則庫因不同的實際業(yè)務(wù)場景而不同,使用前根據(jù)業(yè)務(wù)及后臺數(shù)據(jù)特點維護進庫,根據(jù)rulename(變量名稱或要素標(biāo)識)匹配用戶錄入的變量,根據(jù)contet(變量對應(yīng)內(nèi)容)進行相應(yīng)業(yè)務(wù)數(shù)據(jù)的提取。編碼規(guī)則庫是通過大量的WORD、WPS保存的MHT樣例文檔分析后,統(tǒng)一入庫積累的代碼源,主要作為匹配文檔類型、生成MHT編碼的表格、圖片使用。橫向按照軟件類別劃分,縱向按照軟件版本劃分,如W0RD2007、W0RD2010、WPS2009,WPS2012等。[0082]采用NTKO在線文檔編輯控件,該控件支持WORD及WPS軟件,會調(diào)用用戶電腦中已安裝的文字處理軟件,同時支持自定義菜單,將變量規(guī)則庫中的變量作為菜單提供給用戶,用戶可以在錄入文本適當(dāng)?shù)牡胤近c擊注入規(guī)則變量。同時NTKO支持將用戶錄入的文件,轉(zhuǎn)換為MHT格式,上傳到系統(tǒng)后臺。后臺分析收集的MHT文件源碼信息,通過編碼規(guī)則庫進行匹配,確定生成MHT格式文件時是WORD還是WPS文檔,(兩類軟件工具生成的MHT文件,編碼方式不同)。同時識別分析源文件中包含的變量,獲取插入業(yè)務(wù)要素、表格、圖片等的需求。[0083]根據(jù)分析MHT文件獲取的變量規(guī)則,動態(tài)從系統(tǒng)后臺查詢相關(guān)數(shù)據(jù),此處主要分為三類數(shù)據(jù),第一類為文本變量或統(tǒng)計數(shù)值等單變量,獲取到結(jié)果后,可通過參照編碼規(guī)則庫編碼后直接替換對應(yīng)變量。第二類為表格數(shù)據(jù),即要替換的要素是二維表,這時先從系統(tǒng)中查詢數(shù)據(jù)列表,再通過對照編碼規(guī)則庫,生成與源文檔匹配的MHT編碼,該編碼以〈tableXtrXtd〉為表格、行、單元格為框架要素,加以對應(yīng)的樣式屬性字段。將〈table〉標(biāo)簽整體替換源文件表格變量的位置。第三類為圖片文件,獲取圖片文件后通過Base64編碼后,從規(guī)則庫中調(diào)用文件頭、尾編碼樣本,插入到文檔圖片變量的位置。該模塊將查詢到的數(shù)據(jù)處理成符合MHT編碼風(fēng)格的表格、圖片數(shù)據(jù)插入到源文件中后,生成新的文件進行導(dǎo)出。[0084]本實施例的直接技術(shù)效果是向用戶提供一種在線編輯,靈活定制的文檔生成機制,用戶一次性編輯,系統(tǒng)可以動態(tài)查詢最新信息,生成及時文檔。具體來講,首先維護了一套規(guī)則庫,規(guī)范用戶編輯時的變量引用,同時可以不斷積累MHT文檔處理的資源,不斷兼容新版本的W0RD、WPS文字處理軟件。其次提供了一種支持用戶在線錄入采集的方式,用戶可以使用熟悉的方式進行文檔編輯,編輯后的文檔與導(dǎo)出的文檔格式保持一致。系統(tǒng)對文檔的分析處理,不局限于服務(wù)器所屬平臺,支持WINDOWS、LINUX、UNIX等操作系統(tǒng),因其用的純文本方式分析、改造MHT文件,不必調(diào)用COM、DLL等工具。最后,系統(tǒng)導(dǎo)出完全為WORD、WPS文檔樣式的含有圖片、表格的文檔,支持并發(fā)(可以同時支持多個用戶同時生成文檔的情景),動態(tài)生成。[0085]本說明書中的各個實施例均采用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對于系統(tǒng)實施例而言,由于其基本相似于方法實施例,所以描述得比較簡單,相關(guān)之處參見方法實施例的部分說明即可。以上所述僅是本發(fā)明的【具體實施方式】,對于本【
技術(shù)領(lǐng)域:
】的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應(yīng)視為本發(fā)明的保護范圍。【權(quán)利要求】1.一種富文本文檔的生成方法,其特征在于,預(yù)先建立規(guī)則庫,所述規(guī)則庫中定義了所有能夠插入到待生成富文本文檔中的要素的標(biāo)識以及針對不同類型要素的編碼規(guī)則;所述方法包括:獲取用戶當(dāng)前時刻編輯的文檔對應(yīng)的明文源碼文件,所述明文源碼文件攜帶待插入要素的標(biāo)識;判斷所述明文源碼文件中攜帶的要素的標(biāo)識在所述規(guī)則庫中是否存在,若存在,從數(shù)據(jù)庫中讀取該要素標(biāo)識對應(yīng)的內(nèi)容;根據(jù)該要素的類型,采用規(guī)則庫中定義的與該類型對應(yīng)的編碼規(guī)則對讀取的所述內(nèi)容編碼,以獲得讀取內(nèi)容對應(yīng)的明文源碼;將編碼得到的明文源碼插入到所述明文源碼文件中得到目標(biāo)富文本文檔對應(yīng)的明文源碼文件,以便于通過導(dǎo)出該文件形成目標(biāo)富文本文檔。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述明文源碼文件中攜帶的待插入要素標(biāo)識的生成方法包括:在用戶當(dāng)前時刻編輯的文檔中需要插入要素的位置,顯示用戶輸入的待插入要素的標(biāo)識。3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述明文源碼文件中攜帶的待插入要素標(biāo)識的生成方法包括:在用戶當(dāng)前時刻編輯的文檔所在的應(yīng)用界面上新建菜單,所述菜單至少包括待生成富文本文檔中能夠插入要素的名稱;從新建菜單中選擇待插入要素對應(yīng)的名稱;將選擇的要素對應(yīng)的名稱映射為要素對應(yīng)的標(biāo)識,并顯示在待插入要素的位置。4.根據(jù)權(quán)利要求1-3任一項所述的方法,其特征在于,所述待插入要素的標(biāo)識為:定義的特殊字符、或者定義的快捷鍵。5.根據(jù)權(quán)利要求1-3任一項所述的方法,其特征在于,將編碼得到的明文源碼插入到所述明文源碼文件中為:將編碼得到的明文源碼替換所述明文源碼文件中的待插入要素的標(biāo)識。6.根據(jù)權(quán)利要求1-3任一項所述的方法,其特征在于,將編碼得到的明文源碼插入到所述明文源碼文件中為:將編碼得到的明文源碼插入到所述待插入要素的標(biāo)識在明文源碼文件中的位置。7.一種富文本文檔的生成裝置,其特征在于,所述裝置包括:規(guī)則建立模塊,建立規(guī)則庫,所述規(guī)則庫中定義了所有能夠插入到待生成富文本文檔中的要素的標(biāo)識以及針對不同類型要素的編碼規(guī)則;獲取模塊,獲取用戶當(dāng)前時刻編輯的文檔對應(yīng)的明文源碼文件,所述明文源碼文件攜帶待插入要素的標(biāo)識;判斷模塊,用于判斷所述明文源碼文件中攜帶的要素的標(biāo)識在所述規(guī)則庫中是否存在;讀取模塊,用于所述明文源碼文件中攜帶的要素的標(biāo)識在所述規(guī)則庫中存在時,從數(shù)據(jù)庫中讀取該要素標(biāo)識對應(yīng)的內(nèi)容;編碼模塊,用于根據(jù)該要素的類型,采用規(guī)則庫中定義的與該類型對應(yīng)的編碼規(guī)則對讀取的所述內(nèi)容編碼,以獲得讀取內(nèi)容對應(yīng)的明文源碼;組合模塊,用于將編碼得到的明文源碼插入到所述明文源碼文件中得到目標(biāo)富文本文檔對應(yīng)的明文源碼文件,以便于通過導(dǎo)出該文件形成目標(biāo)富文本文檔。8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述明文源碼文件中攜帶的待插入要素標(biāo)識的生成方法包括:在用戶當(dāng)前時刻編輯的文檔中需要插入要素的位置,顯示用戶輸入的待插入要素的標(biāo)識。9.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述明文源碼文件中攜帶的待插入要素標(biāo)識的生成方法包括:在用戶當(dāng)前時刻編輯的文檔所在的應(yīng)用界面上新建菜單,所述菜單至少包括待生成富文本文檔中能夠插入要素的名稱;從新建菜單中選擇待插入要素對應(yīng)的名稱;將選擇的要素對應(yīng)的名稱映射為要素對應(yīng)的標(biāo)識,并顯示在待插入要素的位置。10.根據(jù)權(quán)利要求7-9任一項所述的方法,其特征在于,所述組合模塊具體用于將編碼得到的明文源碼替換所述明文源碼文件中待插入要素的標(biāo)識。11.根據(jù)權(quán)利要求7-9任一項所述的裝置,其特征在于,所述組合模塊具體用于將編碼得到的明文源碼插入到所述待插入要素的標(biāo)識在明文源碼文件中的位置。【文檔編號】G06F17/30GK103530407SQ201310512295【公開日】2014年1月22日申請日期:2013年10月25日優(yōu)先權(quán)日:2013年10月25日【發(fā)明者】張敬,張峰穎,周榮林,王皓瑜申請人:中國農(nóng)業(yè)銀行股份有限公司