• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    文檔生成技術(shù)研究與應(yīng)用

    2018-02-07 18:08:28邵欣欣張明會(huì)高梓峻
    軟件工程 2018年1期
    關(guān)鍵詞:信息系統(tǒng)

    邵欣欣 張明會(huì) 高梓峻

    摘 要:本文的在線生成在當(dāng)前的信息系統(tǒng)中有廣泛的應(yīng)用,基于現(xiàn)有的POI和Itext等API無法實(shí)現(xiàn)的問題進(jìn)行擴(kuò)展。文中研究了文檔的直接生成中的難點(diǎn)問題,包括復(fù)雜表格的生成、單元格的合并等;還研究了對Word和Excel的內(nèi)容進(jìn)行替換的文檔生成方式,總結(jié)了適用于Word和Excel文檔的最優(yōu)生成方式。以上方法均已在項(xiàng)目中進(jìn)行應(yīng)用,并取得了良好的效果。

    關(guān)鍵詞:文檔生成;寫入生成;自定義模板;信息系統(tǒng)

    中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A

    Abstract:Text online generated have a wide range of applications in current information systems.Aiming at the problem of document generation in POI and Itext technology,the difficulties of generating documents are studied,including the generation of the complicated form,the cell's merger etc.Replacing content of Word and Excel is studied.The optimal generation of Word and Excel document is proposed.These methods have been applied in the project,and achieved good results.

    Keywords:document generation;written generation;custom template;information system

    1 引言(Introduction)

    在高校和企業(yè)中,報(bào)表和文檔的處理一直是必不可少的組成部分。當(dāng)前文檔多以電子形式編寫和存儲(chǔ),但是很多時(shí)候又要紙質(zhì)版的存檔,因此文檔的在線生成是一項(xiàng)必不可少的功能。例如電子商務(wù)網(wǎng)站的賬單、交易額、發(fā)票、在線合同等,高校的各類辦公和教學(xué)文檔,例如對于教師有培養(yǎng)方案、大綱、教學(xué)日歷、教學(xué)總結(jié)等,對于學(xué)生有實(shí)驗(yàn)報(bào)告、畢設(shè)指導(dǎo)手冊、開題報(bào)告、譯文、畢業(yè)論文、畢業(yè)成績單、學(xué)位證明等重要的文檔。這些電子文檔往往需要復(fù)雜的形式,既包含文本和表格,又包含圖片,甚至在表格里加入圖片?;谶@樣的需求,迫切需要一套能夠簡單、實(shí)用、高效地滿足各類報(bào)表生成的API。本文就以高校的各類文檔的生成為需求,展開研究文檔生成技術(shù)。

    當(dāng)前,常用的Java系列的文檔生成的擴(kuò)展包主要有Itext、POI和JXLS,這幾種擴(kuò)展包可以實(shí)現(xiàn)Excel、Word和PDF文件的導(dǎo)出,但是它們都存在某些弊端。Word POI生成簡單的Excel的確很優(yōu)秀,但是操作Word的功能卻不盡人意。Itext對于PDF的輸出的介紹資料較多,對于Word文檔的輸出的介紹也不多,對于復(fù)雜表格的輸出也存在不靈活等問題,而且也無法實(shí)現(xiàn)對Word文檔分欄和增加水印等功能[1]。和POI結(jié)合應(yīng)用的JXLS在使用模板生成Excel文檔方面有一定的優(yōu)勢,而這方面的文獻(xiàn)并不多。

    綜上所述,迫切需要一組API能夠?qū)崿F(xiàn)復(fù)雜文檔的輸出,這也正是本文要解決的問題。本文提出了一套解決方案,具有實(shí)用性強(qiáng)、靈活性好等特點(diǎn)。

    2 系統(tǒng)框架(System architecture)

    高校的文檔包含內(nèi)容較多,如何組織數(shù)據(jù)和確定數(shù)據(jù)最合適的輸出方式,都是在需求階段就需要解決的問題,基于文檔較多,數(shù)據(jù)量大的問題,首先對文檔進(jìn)行歸類,確定生成方式。本文要研究的文檔主要有Word和Excel兩種輸出形式,根據(jù)內(nèi)容可采用直接生成和模板替換兩種方式。

    高校文檔生成系統(tǒng)共分為四層,包括數(shù)據(jù)采集層、數(shù)據(jù)存儲(chǔ)層、數(shù)據(jù)分析和輸出層。不同層級間采用文件服務(wù)的方式傳遞數(shù)據(jù)。系統(tǒng)應(yīng)用當(dāng)前比較成熟的SSH框架,前臺(tái)使用JQuery和AngularJS,數(shù)據(jù)庫采用Oracle數(shù)據(jù)庫[2],詳細(xì)的系統(tǒng)架構(gòu)如圖1所示。

    3 功能實(shí)現(xiàn)(Function realization)

    3.1 寫入生成

    基于對Word POI和Itext現(xiàn)有功能的研究,確定對Itext進(jìn)行改進(jìn)后生成Word文檔更適合。對現(xiàn)有API進(jìn)行封裝,生成兩種方案各自的擴(kuò)展包,保證具備生成復(fù)雜Word和PDF文檔的方式和方法。當(dāng)前的API已經(jīng)能夠?qū)崿F(xiàn)簡單的Word文檔的輸出,但是對于復(fù)雜表格的生成還無法實(shí)現(xiàn)。另外,對于生成頁眉、頁腳和水印等內(nèi)容也不夠靈活。因此,對現(xiàn)有API進(jìn)行封裝,能夠?qū)崿F(xiàn)復(fù)雜表格的生成。培養(yǎng)方案、教學(xué)大綱和教學(xué)總結(jié)都采用此方式實(shí)現(xiàn)。

    項(xiàng)目采用對現(xiàn)有Itext的API進(jìn)行封裝,封裝為”ComplexTextUtils”,此類中提供生成word文檔的基本方法,包括生成正文、簡單表格、復(fù)雜表格、水印和頁眉頁腳等。

    這部分的難點(diǎn)就是生成復(fù)雜的表格和生成頁眉、頁腳等內(nèi)容。

    3.1.1 復(fù)雜表格的生成

    Itext自帶的API根據(jù)表格內(nèi)容、行跨度和列跨度三個(gè)參數(shù)進(jìn)行組織數(shù)據(jù),那么只要計(jì)算出行和列的跨度,就可以動(dòng)態(tài)組織數(shù)據(jù),生成復(fù)雜的表格[3]。

    經(jīng)過改進(jìn)的API中有多個(gè)重載的InsertComplexTable方法,用來實(shí)現(xiàn)復(fù)雜表格的顯示,需要為此方法提供至少三個(gè)參數(shù),分別為標(biāo)題數(shù)組、正文數(shù)組和列數(shù),如果還有更高的要求,可以提供更多的參數(shù)。

    public void insertComplexTable(ListtitleData,ListcontentData,int column,int[]columnwidth) throws DocumentException

    那么,如何通過算法對數(shù)據(jù)的行跨度和列跨度進(jìn)行計(jì)算,是需要解決的重點(diǎn)問題。表格數(shù)據(jù)多存放于集合中,需要對集合類的結(jié)構(gòu)進(jìn)行遍歷,確定行跨度和列跨度,遍歷采用如下方法進(jìn)行,考慮到章節(jié)和知識(shí)點(diǎn)之間的嵌套,采用循環(huán)遍歷的方式對數(shù)據(jù)進(jìn)行清洗,確定每個(gè)單元和節(jié)的行跨度。在當(dāng)前系統(tǒng)中集合的結(jié)構(gòu)共有三層,相當(dāng)于樹的結(jié)構(gòu)是三層,對內(nèi)容進(jìn)行遍歷,根據(jù)下一層節(jié)點(diǎn)的個(gè)數(shù),先把上一層結(jié)構(gòu)補(bǔ)充完成[4]。

    3.1.2 頁眉、頁腳的生成

    Itext還能夠?qū)崿F(xiàn)水印、頁碼、復(fù)雜表格、圖片、頁眉等內(nèi)容的生成,頁眉和頁腳生成效果如圖4所示。

    3.2 替換生成

    在高校管理系統(tǒng)中,有部分教學(xué)文檔格式復(fù)雜,但是內(nèi)容固定,僅需要替換和填充就可以。此類文檔適合采用替換的方式生成。教學(xué)日歷和畢業(yè)證明等文檔的格式、樣式和版式都是相同的,只是部分字段進(jìn)行替換即可[5],那么對于這樣的文檔適合使用文本替換的技術(shù)實(shí)現(xiàn),替換涉及的文檔主要也是Word和Excel。

    3.2.1 Word的替換應(yīng)用POI的替換功能

    首先來看Word文檔的替換,主要應(yīng)用于生成畢業(yè)證明和學(xué)位證明。利用標(biāo)簽技術(shù)來確定待替換的變量的位置[4],對于每個(gè)要替換的數(shù)據(jù)都設(shè)置為單獨(dú)的標(biāo)簽,在編寫標(biāo)簽需要注意的一點(diǎn)就是標(biāo)簽不能有其他格式,必須清除無效字符,可以在文本編輯器中編寫,粘貼到Word文檔中采用POI自帶的功能,把要被替換的數(shù)據(jù)組織在HashMap中,例如:

    3.2.2 Excel的替換

    其次是Excel的替換。Excel文檔的替換主要是在教學(xué)日歷中使用,經(jīng)對比發(fā)現(xiàn)利用JXLS來實(shí)現(xiàn)內(nèi)容的替換最適合。此方法采用編寫腳本的方式,腳本中可以寫入代碼,相同格式的數(shù)據(jù)可以循環(huán)插入,把數(shù)據(jù)以類的方式組織,放在List中,例如Course類。如果Course類中包含其他的類,可以作為屬性[7]。

    4 結(jié)論(Conclusion)

    通過對Itext、POI和JXLS等文本輸出技術(shù)的研究和對比,對原有API進(jìn)行改進(jìn),采用最優(yōu)的方法實(shí)現(xiàn)了文本的在線輸出,能夠滿足以多種復(fù)雜的方式輸出Word和Excel文本。本文的方式和方法已在項(xiàng)目中進(jìn)行應(yīng)用。另外在文獻(xiàn)[6]—文獻(xiàn)[8]的App系統(tǒng)中,也進(jìn)行了應(yīng)用,并取得了非常良好的效果。

    參考文獻(xiàn) (References)

    [1] Bing L,Li P,Liao Y,et al.Abstractive Multi-Document Summarization via Phrase Selection and Merging[J].Computational Linguistics,2015,31(4):505-530.

    [2] Abualigah L M,Khader A T,Al-Betar M A,et al.Text feature selection with a robust weight scheme and dynamic dimension reduction to text document clustering[J].Expert Systems with Applications,2017,84(C):24-36.

    [3] Ayyar K,Han C J.System and method for computing, applying, and displaying document deltas[J].Remote Sensing of Environment,2017,118(118):339-355.

    [4] 周千明,朱欣娟.基于Aspose技術(shù)的自定義模板文檔生成方法[J]. 計(jì) 算 機(jī) 系 統(tǒng) 應(yīng) 用,2015,24(6):235-238.

    [5] 張艷偉.QT框架下的WORD文檔生成方法[J].計(jì)算機(jī)應(yīng)用與軟件,2015,32(10):120-122;150.

    [6] 付麗梅,鄧?yán)^禹,賈躍.基于騰訊微校平臺(tái)的易學(xué)習(xí)APP設(shè)計(jì)與實(shí)現(xiàn)[J].考試周刊,2017(07):112.

    [7] 付麗梅,劉英鵬,賈躍.基于騰訊微校平臺(tái)的校園移動(dòng)辦公APP設(shè)計(jì)與實(shí)現(xiàn)[J].信息系統(tǒng)工程,2017(01):156-157.

    [8] 邵欣欣,徐健晟,冀航宇.基于VR的幻房App的設(shè)計(jì)與運(yùn)營分析[J].電子元器件與信息技術(shù),2017,7(01):1-5.

    作者簡介:

    邵欣欣(1980-),女,碩士,副教授.研究領(lǐng)域:軟件工程,虛擬現(xiàn)實(shí).

    張明會(huì)(1980-),女,碩士,教授.研究領(lǐng)域:軟件工程,算法.

    高梓峻(1995-),男,本科,工程師.研究領(lǐng)域:軟件工程,軟件開發(fā).

    猜你喜歡
    信息系統(tǒng)
    高速公路路況信息系統(tǒng)
    企業(yè)信息系統(tǒng)安全防護(hù)
    哈爾濱軸承(2022年1期)2022-05-23 13:13:18
    現(xiàn)代管理型會(huì)計(jì)信息系統(tǒng)的內(nèi)部控制探究
    現(xiàn)代管理型會(huì)計(jì)信息系統(tǒng)的內(nèi)部控制探究
    基于區(qū)塊鏈的通航維護(hù)信息系統(tǒng)研究
    電子制作(2018年11期)2018-08-04 03:25:54
    信息系統(tǒng)審計(jì)中計(jì)算機(jī)審計(jì)的應(yīng)用
    電磁計(jì)算單信息系統(tǒng)研究
    企業(yè)綜合節(jié)能信息系統(tǒng)SciMES
    高速公路信息系統(tǒng)維護(hù)知識(shí)庫的建立和應(yīng)用
    基于SG-I6000的信息系統(tǒng)運(yùn)檢自動(dòng)化診斷實(shí)踐
    京山县| 阿瓦提县| 根河市| 龙陵县| 通州区| 嘉祥县| 吐鲁番市| 延长县| 沅江市| 犍为县| 蒙自县| 高邑县| 上虞市| 平度市| 临沭县| 成都市| 资溪县| 日喀则市| 广丰县| 临夏县| 延边| 凤山市| 柘城县| 舒兰市| 武鸣县| 贵德县| 德安县| 阳泉市| 堆龙德庆县| 竹溪县| 平利县| 铁岭县| 洛南县| 墨玉县| 武胜县| 鄱阳县| 山东省| 那曲县| 鹰潭市| 儋州市| 新竹县|