java利用Freemarker模板生成格式友好的doc文件(這種方式不支援docx)
近期做專案需要生成複雜的帶格式的word文件,選擇過poi和itext來寫文件,發現文件生成沒問題,但是格式不好調,後來就想要利用freemarker模板來生成,效果還可以,今天就貼出來。
主要分為以下幾步
- 整理一份排版友好的word文件
如:
- 修改word裡面需要填充的文字或圖片
利用$符號把要填充的內容換成具體的變數佔位符
不要直接在word文件裡寫佔位符,可以在編輯器裡寫完成後再複製到word裡,這樣不會出現佔位符在文件生成ftl模板後被分隔開的問題。
- 把修改後的word文件另存為xml
- 把生成的xml檔案字尾名修改為ftl
- 修改ftl模板裡的變數佔位符
1、修改圖片的basecode64碼替換成具體的變數佔位符。
說明:這裡要注意修改以下兩個屬性,如果不修改會導致圖片只顯示第一張圖片
<w:binData w:name="${"wordml://0300000"+warn_img_index+1+".png"}" xml:space="preserve">
<v:imagedata src="${"wordml://0300000"+warn_img_index+1+".png"}" o:title="svg_data_container_common_lkhs"/>
2、修改文字顯示的變數站位符號
普通的List<String>迴圈
List<Map>迴圈
6. 填充資料
String file_path = "D:/export";
String file_name = System.currentTimeMillis()+"_freemarker_word.doc";
//載入freemarker模板
FreemarkerWordUtils.createWord(data_map,"wordtemplates.ftl",file_path,file_name);
/**
* 把圖片轉換成basecode64碼
* @param path
* @return
*/
public static String getPic_base64code(String path){
String img = null;
InputStream in;
byte[] picdata = null;
try {
in = new FileInputStream(path);
picdata = new byte[in.available()];
in.read(picdata);
in.close();
} catch (Exception e) {
e.printStackTrace();
}
BASE64Encoder encoder = new BASE64Encoder();
img = encoder.encode(picdata);
return img;
}
最終生成的文件如下:
相關推薦
java利用Freemarker模板生成格式友好的doc文件(這種方式不支援docx)
近期做專案需要生成複雜的帶格式的word文件,選擇過poi和itext來寫文件,發現文件生成沒問題,但是格式不好調,後來就想要利用freemarker模板來生成,效果還可以,今天就貼出來。 主要分為
java利用Freemarker模板生成docx格式的word文件
之前寫過一篇利用Freemarker模板生成doc的部落格,不過那個部落格有點缺陷,生成的word佔用的空間很大,幾百頁的word有將近100M了。所以,後面需求必須是生成的docx文件,結果匯出後正常才幾M,昨天花了一天的時間實現。 具體思路 1.把docx文件修改為ZIP格式(修改
利用Ldoc生成lua的doc文件
如果下面操作出現無法執行lua程式碼的,需要先安裝lua。詳見下文第四點。 一、安裝LuaRocks # cd luarocks本地磁碟目錄 # 例如 cd /Users/zengbinsi/workspace/babybus/ldoc/env
根據xlsx模板生成excel數據文件發送郵件代碼
order comment hssf emp value ade 新的 see util package mail; import java.io.File; import java.io.FileInputStream; import java.io.FileNotF
Java小技巧自動生成註釋、api文件
cmd 命令 javadoc的使用 win+R彈出執行視窗 輸入cmd回車,進入dos介面,輸入java -version,檢查java是否配置好。如下圖所示 配置好java後,我們新建一個含有公共類的java檔案,在裡面寫點東西。 然後儲存到資料夾test裡面
springboot+freemarker實現生成資料庫設計Word文件
以前在專案完成後都會按照要求寫資料庫設計文件,表少的時候還無所謂,當有上百張表的時候就不好寫了。當然也有一些自動化軟體可以幫我們實現這個功能,但是自定義的程度比較低。所以今天自己來實現這個功能,可以按照自己的喜好定義樣式和模板,是不是很酷。 首先新建一個Word
php根據word模板生成新的word文件
sso roc 信息 使用 docs offic value 文件 安裝 原文地址:http://www.niu12.com/article/16 php使用phpword將word內容變量替換 a.安裝phpword composer require phpoffice
Maven學習總結(43)——利用javadoc外掛生成專案的API文件
在進行Java學習的時候,相信大家都看過線上或者下載的java api文件,可能是html格式或者chm格式的,其實這些參考文件也是很容易生成的,這裡介紹一個maven的外掛來實現專案程式碼文件的生成。
Java根據Word模板生成Word文件(Freemarker實現)
public class WordExportUtil { private static Configuration configuration; static { configuration = new Configuration(); configur
Java之利用Freemarker模板引擎實現程式碼生成器,提高效率
https://blog.csdn.net/huangwenyi1010/article/details/71249258 java模板引擎freemarker程式碼生成器 更多 個人分類: 一步一
JAVA利用FreeMarker生成(匯出)Word文件
一、首先下載相對應的jar包:freemarker.jar; 而我的專案環境是:maven 在pom.xml中: <dependency> <groupId>freemarker</groupId> <artifactId>f
JAVA通過模板生成DOC文件
將word文件另存為xml檔案 接下來,上面寫的拼音就起到作用了. 開啟xml檔案.搜尋 要替換的內容. 改為 ${內容} 改完後,把檔案的字尾名直接改成ftl。 程式碼: package com.hentor.apps.bestsign.util; i
Aspose.words Java基於模板生成word之純文本內容
style loader bool depend name println 以及 test pre 一,創建word模板 1.新建一個word文檔 2.分別給四個參數設置域 (1)將鼠標置於想要設置域的地方 (2)設置域名 (3)設置好之後如下圖所示 二,項目 1,
使用freemarker模板生成Word文件和HTML
注:該文件是參考某個大佬的資料,根據自己的需要修改的,具體是哪位大佬的忘了,如果作者自己看到需要加明出處的,請留言你的部落格地址 業務處理: 1,在業務中建立List<Map<String, Object>> data = new ArrayList<Map<Strin
使用java將html原始碼(拼裝、可獲取頁面原始碼)轉換成為("html頁面",“doc文件檔案”,“pdf格式”),,doc檔案轉換成為pdf,,檔案的刪除、壓縮...
目錄: 1、轉換成為html頁面 2、html原始碼轉換成為doc檔案 3、html原始碼轉換成為pdf檔案 4、壓縮多個檔案成為一個zip檔案
使用freemarker模板生成word文件
專案中最近用到這個東西,做下記錄。 如下圖,先準備好一個(office2003)word文件當做模板。文件中圖片、姓名、性別和生日已經使用佔位符代替,生成過程中將會根據實際情況進行替換。 然後將word文件另存為“Word XML文件” 使用xml編輯器開啟test.xml,
Java 實現後臺生成doc文件
最近公司需要後臺報告自動生成,就查了一些實現方式。 最初想生成PDF報告,Freemark + Itext + flying saucer 可以實現,但是生成的PDF文件,後續不易修改。 就改為生成word文件,找到了java兩種實現方式 1.freemark 2. p
freemarker模板生成word檔案
1、用word文件製作好模板 ceshi.docx 2、將ceshi.docx檔案另存為ceshi.xml檔案 ${name}、${tel}、${address}被拆分了,用notpad++開啟ceshi.xml檔案,將被拆分的資料重新修改,修改完以後將檔案另存為ftl
Java利用mpxj解析mpp格式檔案
1、mpp檔案介紹 MPP是Microsoft Project專案管理軟體的副檔名,此軟體旨在幫助個人跟蹤,組織或維護專案。 2、mpp顯示效果 3、mpp結構說明 通過上圖可以看出,檔案主體內容就是一條一條的記錄,記錄內容包括:任務ID、任務名、Dur
java使用freemarker模板匯出word(帶有合併單元格)文件
前言:最近要做一個匯出word功能,其實網上有很多的例子,但是我需要的是合併單元格的,可是查了好久都沒有自己想要的。研究了幾天其實挺簡單的,在這兒我就簡單的介紹一下吧!(此方法只是一種思路,借鑑者還有根據需求來具體寫程式碼) 一、準備工作 1、jar包:freemarker