Docx模板是一個帶標記的Word文檔,模板引擎用數據替換這些標記生成新的Word文檔。 javascript
這是一份文檔,同時也是一個模板,後面的示例將會使用本模板。html
Word文檔地址:http://www.xdocin.com/DocxEngine.docxjava
${名稱}網絡
先後標記符合必須是半角的,傳入的數據會依照下面的規則自動識別:編碼
文本標記在文檔中直接輸入。spa
單行文本: ${單行文本}code
多行文本: ${多行文本}orm
圖片: ${圖片}htm
文本框中的圖片:模板引擎
當文本框中只有一個圖片時,圖片會根據文本框的大小作大小適應
HTML: ${HTML}
URL地址: ${URL地址}
網絡文檔: ${文檔}
插入示例圖片,打開【設置圖片格式】,在【可選文字】-【標題】中輸入標記,以下圖:
插入表格,打開【表格屬性】對話框,在【可選文字】-【標題】中輸入標記,以下圖:
經過設置【重複標題行】定義表頭,表頭能夠是多行,以下圖:
表頭下的第一行是數據行,數據行會根據傳入的數據條數,重複顯示。
若是不設置表頭,第一行就是數據行。
在數據行中輸入標記,標記的名稱是列表的字段名,也能夠引用全局的標記。
數據行下是表尾,能夠沒有。
若是無數據傳入,表格不顯示。
名稱 |
信息 |
|
徽標 |
市值(億美圓) |
|
${名稱} |
${市值} |
|
公司信息 |
插入文本框,將文本框的【位置】設置爲【嵌入文本行中】,以下圖:
打開【設置形狀格式】,在【可選文字】-【標題】中輸入標記,以下圖:
在文本框中輸入標記,標記的名稱是列表的字段名,也能夠引用全局的標記。
數據行會根據傳入的數據條數,重複顯示。若是無數據傳入,文本框不顯示。
http://www.xdocin.com/XDocService.jar
import java.io.File; import java.util.HashMap; import java.util.Map; import com.hg.xdoc.XDocService; public class DocxEngineDemo { public static void main(String[] args) { Map<String, Object> params = new HashMap<String, Object>(); try { params.put("單行文本", "你好!"); params.put("多行文本", "一行\n兩行\n三行"); params.put("圖片", "http://www.xdocin.com/xdoc.png"); params.put("HTML", "<html><li>張小三</li><li>李小四</li><li>王小五</li></html>"); params.put("URL地址", "text:http://www.baidu.com"); params.put("文檔", "http://www.xdocin.com/xdoc?_func=hi&_rformat=html"); params.put("公司", "名稱,徽標,市值\n" + "騰訊,http://www.logodashi.com/OldPic/635467462172730000.gif,3000\n" + "阿里巴巴,http://www.logodashi.com/OldPic/635521864517328000.jpg,2900\n" + "百度,http://www.logodashi.com/OldPic/635467448562000000.gif,600"); new XDocService().run("http://www.xdocin.com/DocxEngine.docx", params, new File("d:/DocxEngineResult.docx")); } catch (Exception e) { e.printStackTrace(); } } }
注意:模板爲本地文件或URL。
<script type= "text/javascript" src= "http://www.xdocin.com/xdoc.js" ></script> <script type= "text/javascript" > XDoc.run( "http://www.xdocin.com/DocxEngine.docx" , "docx" , { "單行文本" : "你好!" , "多行文本" : "一行\n兩行\n三行" , "圖片" : "http://www.xdocin.com/xdoc.png" , "HTML" : "<html><li>張小三</li><li>李小四</li><li>王小五</li></html>" , "URL地址" : "text:http://www.baidu.com" , "文檔" : "http://www.xdocin.com/xdoc?_func=hi&_rformat=html" , "公司" : "名稱,徽標,市值\n" + "騰訊,http://www.logodashi.com/OldPic/635467462172730000.gif,3000\n" + "阿里巴巴,http://www.logodashi.com/OldPic/635521864517328000.jpg,2900\n" + "百度,http://www.logodashi.com/OldPic/635467448562000000.gif,600" }, "_blank" ); </script>
注意:模板地址須要外網能訪問,或者爲DataURI。
http://www.xdocin.com/xdoc?_func=run&_format=docx&_xdoc=模板&標記名稱=標記值
模板、標記名稱、標記值必須用UTF-8編碼,參數比較多時,請以POST方式調用。
注意:模板地址須要外網能訪問,或者爲DataURI。