在线不卡日本ⅴ一区v二区_精品一区二区中文字幕_天堂v在线视频_亚洲五月天婷婷中文网站

  • <menu id="lky3g"></menu>
  • <style id="lky3g"></style>
    <pre id="lky3g"><tt id="lky3g"></tt></pre>

    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、準備數(shù)據(jù)

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

    2、制作word模版

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

    3、制作freemark模版

    在新建word模版的基礎上,使用freemark語法,結(jié)合已經(jīng)準備填充的數(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、編碼

    /* 模擬準備數(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)起來就會增加不少難度。

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

    (一)復雜模版

    1、多媒體資源布局

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

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

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

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

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

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

    (二)文件格式

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

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

    (三)使用建議

    開發(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)推薦

    • 我國首臺130噸級重復使用液氧煤油補燃循環(huán)發(fā)動機試車成功

      新華社西安11月26日電記者26日從中國航天科技集團六院獲悉,由該院自主研制的首臺130噸級重復使用液氧煤油補燃循環(huán)發(fā)動機兩次起動試車取得圓滿成功。 該型發(fā)動機是瞄準我國新一代運載…

      2022年11月27日
    • 世界領(lǐng)先!我國已應用于新一代戰(zhàn)機→

      本文轉(zhuǎn)自【央視軍事】; “3D打印技術(shù)在飛機上的應用 我們已達到規(guī)?;?、工程化 處于世界領(lǐng)先位置” 如何運用3D打印設備 生產(chǎn)新一代戰(zhàn)機的零部件? 規(guī)模化+工程化 3D打印件批量裝…

      2022年11月27日
    • 短視頻策劃內(nèi)容的3個要點(短視頻策劃內(nèi)容怎么做)

      短視頻在制作時,內(nèi)容框架非常重要。如果直奔主題,然后結(jié)束,聚卓告訴你,這樣的短視頻已經(jīng)過時了?,F(xiàn)在的短視頻需要框架的,但不是任何框架,它需要一種易于理解和消化的框架。而且,現(xiàn)在大多…

      2022年11月27日
    • 中國疫情為什么搞得那么緊張(為什么要搞疫情)

      有在關(guān)注國內(nèi)本輪疫情的小伙伴應該注意到了,這幾天國內(nèi)疫情的情況還是比較嚴峻的,而各地也都在針對疫情實行嚴格的管控措施。那么,中國疫情為什么搞得那么緊張?對比國外,國內(nèi)疫情的防控措施…

      2022年11月25日
    • 中國疫情為何突然嚴重了(大連疫情為何突然增加那么多)

      有在關(guān)注國內(nèi)此次疫情的小伙伴應該注意到了,近期國內(nèi)各地的疫情情況也都是比較嚴峻的。而對于進入十一月份后各地突然爆發(fā)的疫情,大家也都第一時間查詢原因。中國疫情為何突然嚴重了?為什么國…

      2022年11月25日
    • 《羊了個羊》第二關(guān)怎么過11.25 羊了個羊11.25攻略

      羊了個羊的11月25日第二關(guān)的難度不高,那么11月25日的第二關(guān)是什么樣的,有什么通關(guān)技巧呢?下面就讓小編為大家分享一下羊了個羊第二關(guān)怎么過11.25攻略,一起來了解一下吧。 羊了…

      2022年11月25日
    • 客服的崗位職責怎么寫(客服工作內(nèi)容及職責)

      各位小伙伴們大家周一好,又到了每周一給大家分享干貨內(nèi)容的時候啦~ 本期來跟大家分享一下客服工作管理流程以及客服崗位里面的每項職能崗位的核心細則,也是干貨滿滿推薦收藏~ 一.補償流程…

      2022年11月25日
    • 小紅書平臺的一些機制及玩法詳解(小紅書玩法有哪些)

      關(guān)于小紅書 一:小紅書平臺的一些機制 1. 筆記內(nèi)容的CES評分機制 2. 筆記流量入口與長尾效應 二:小紅書優(yōu)質(zhì)筆記的特點(分維度、類型分析) 1.筆記的本身架構(gòu)組成 維度 2.…

      2022年11月25日
    • 什么是推廣cpa一篇文章帶你看懂CPA推廣渠道

      CPA渠道 CPA指的是按照指定的行為結(jié)算,可以是搜索,可以是注冊,可以是激活,可以是搜索下載激活,可以是綁卡,實名認證,可以是付費,可以是瀏覽等等。甲乙雙方可以根據(jù)自己的情況來定…

      2022年11月25日
    • 博客營銷的3大優(yōu)勢解析(博客營銷怎么做)

      不知不覺已經(jīng)寫了24篇文章,加上這篇是第25篇了,都是自己這幾年來用過的營銷方法,如果遇到有些不懂的,我會咨詢我的朋友和同事幫忙,盡量讓每一篇有價值,哪怕是對大家有一點點幫助也行,…

      2022年11月25日

    聯(lián)系我們

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