亚洲国产日韩人妖另类,久久只有这里有精品热久久,依依成人精品视频在线观看,免费国产午夜视频在线

      
      

        Java使用FreeMarker模版技術(shù)動態(tài)生成word實踐

        Java使用FreeMarker模版技術(shù)動態(tài)生成word實踐

        一、序言

        在日常開發(fā)中,常常有動態(tài)word文件生成的需求,通過編制模版,然后動態(tài)修改word內(nèi)容以組合成新的文件。報告單、請假單、發(fā)票頁等都可以使用動態(tài)生成word來解決。

        筆者總結(jié)歸納出通用技術(shù)要點,盡可能降低廣大開發(fā)者的使用技術(shù)門檻。

        二、制作與渲染模版

        (一)總體流程

        1、準(zhǔn)備數(shù)據(jù)

        通過查詢數(shù)據(jù)庫獲取需要修改的數(shù)據(jù),或者是調(diào)用遠(yuǎn)程API接口獲得數(shù)據(jù),數(shù)據(jù)準(zhǔn)備完畢后,進(jìn)入下一步。

        2、制作word模版

        新建并設(shè)計出期望效果的word文檔樣式,包含字體、字號、段落樣式布局等,先做出一個靜態(tài)的word文件。

        3、制作freemark模版

        在新建word模版的基礎(chǔ)上,使用freemark語法,結(jié)合已經(jīng)準(zhǔn)備填充的數(shù)據(jù)結(jié)構(gòu),將需要動態(tài)變化的內(nèi)容用變量表示。

        用變量替換時常見的情形時對象屬性和循環(huán)。

        freemark模版制作完成后,保存為ftl后綴文件。

        4、渲染字符串

        將數(shù)據(jù)和freemark模版組合,并且將前期制作的變量占位符替換,形成最終的word文件

        (二)編碼實踐

        按照筆者提供的流程和SDK編碼實踐相對比較簡單。

        1、引入依賴

        如下依賴包含封裝的工具方法,大幅降低使用門檻。

        xin.altitude.cms ucode-cms-word 1.5.6

        2、編碼

        /* 模擬準(zhǔn)備數(shù)據(jù) */List data = TempUtils.readJsonList(“HumanDemo.json”, HumanDemo.class);/* 將數(shù)據(jù)填充到模版中并生成word文檔 */DocUtils.fillWord(“templates/HumanDemo.ftl”, data);

        從流程到編碼實踐比較簡單。

        到此為止,已經(jīng)可以快速體驗word生成技術(shù)了。

        三、內(nèi)容拓展

        上述分析的word生成如果頁面結(jié)構(gòu)較為簡單,實現(xiàn)起來難度不大,假如涉及到如下情形,實現(xiàn)起來就會增加不少難度。

        增加的困難主要來源于頁面布局復(fù)雜、使用各種組件控件多、多媒體資源的引入。解決方法仍然參考上述流程。

        (一)復(fù)雜模版

        1、多媒體資源布局

        當(dāng)模版中需求多媒體(圖片)內(nèi)容,并且數(shù)量動態(tài)變化,位置不固定時,實現(xiàn)難度較大。

        2、復(fù)雜內(nèi)容布局

        當(dāng)模版中包含文本,選擇框,橫向合并單元格、縱向合并單元格時,實現(xiàn)難度較大。

        3、動態(tài)渲染表格

        涉及到動態(tài)渲染合并單元格時,實現(xiàn)難度較大。

        上述復(fù)雜模版制作,筆者均有實踐。

        (二)文件格式

        對于word文件格式有兩種,一種是.doc后綴文件,一種是.docx后綴文件,上述討論屬于前者,后者模版制作與生成比前者要復(fù)雜,將在后續(xù)的版本中提供API操作接口。

        .docx后綴文件的word在轉(zhuǎn)PDF方面兼容性比較好。

        (三)使用建議

        開發(fā)前,盡可能將模版布局確認(rèn),對于復(fù)雜頁面結(jié)構(gòu)修改需要增加較大投入

        熟悉FreeMark語法、word文件結(jié)構(gòu)將會對word模版開發(fā)受益

        多使用、多練將有助于制作出漂亮的文檔。

        文章來自https://www.cnblogs.com/javazhishitupu/p/16373006.html

        鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場,版權(quán)歸原作者所有,如有侵權(quán)請聯(lián)系管理員(admin#wlmqw.com)刪除。
        上一篇 2022年6月21日 12:11
        下一篇 2022年6月21日 12:12

        相關(guān)推薦

        聯(lián)系我們

        聯(lián)系郵箱:admin#wlmqw.com
        工作時間:周一至周五,10:30-18:30,節(jié)假日休息