1. 引包<dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId><version>2.3.28</version></dependency>
word文档工具类import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.Version;import java.io.*;
import java.util.Map;/*** Word文档工具类*/
public class WordUtil {/*** 使用FreeMarker自动生成Word文档* @param dataMap 生成Word文档所需要的数据* @param fileName 生成Word文档的全路径名称*/public static void generateWord(Map<String, Object> dataMap, String fileName) throws Exception {// 设置FreeMarker的版本和编码格式Configuration configuration = new Configuration(new Version("2.3.28"));configuration.setDefaultEncoding("UTF-8");// 设置FreeMarker生成Word文档所需要的模板的路径configuration.setDirectoryForTemplateLoading(new File("C:/Users/jack/Desktop/"));// 设置FreeMarker生成Word文档所需要的模板Template t = configuration.getTemplate("sp.ftl", "UTF-8");// 创建一个Word文档的输出流Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(fileName)), "UTF-8"));//FreeMarker使用Word模板和数据生成Word文档t.process(dataMap, out);out.flush();out.close();}
}
在线图片/本地图片 转 base64 工具类import sun.misc.BASE64Encoder;
import java.io.FileInputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;/*** 图片工具类*/
public class ImageUtil {/*** 将图片内容转换成Base64编码的字符串* @param imgFile 图片文件的全路径名称* @return 转换成Base64编码的图片内容字符串*/public static String getImageBase64String(String imgFile) {InputStream in = null;byte[] data = null;try {if (imgFile.contains("http://")||imgFile.contains("https://")){in = getInputStream(imgFile);data = new byte[in.available() * 100];}else {in = new FileInputStream(imgFile);data = new byte[in.available()];}in.read(data);in.close();} catch (Exception e) {e.printStackTrace();}BASE64Encoder encoder = new BASE64Encoder();return encoder.encode(data);}public static InputStream getInputStream(String picUrl) {InputStream in = null;HttpURLConnection connection = null;try {URL url = new URL(picUrl);connection = (HttpURLConnection) url.openConnection();connection.setConnectTimeout(10000);connection.setDoInput(true);connection.setRequestMethod("GET");int responseCode = connection.getResponseCode();if (responseCode == 200) {in = connection.getInputStream();}} catch (Exception e) {e.printStackTrace();}return in;}
}
测试 main 方法import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;public class ZtestMain {public static void main(String[] args) throws Exception{/*** 自动生成Word文档* 注意:生成的文档的后缀名需要为doc,而不能为docx,否则生成的Word文档会出错*/WordUtil.generateWord(getWordData(), "C:/Users/jack/Desktop/sp1.doc");}/*** 获取生成Word文档所需要的数据*/private static Map<String, Object> getWordData() {// 1.简单的没有循环的map// Map<String, Object> dataMapEazy = new HashMap<>();// dataMapEazy .put("title","标题");// dataMapEazy .put("title","内容");// return dataMapEazy ;// 对应单元格的合并final String startMerge = "<w:vMerge w:val='restart'/>";final String endMerge = "<w:vMerge/>";Map<String, Object> dataMap0 = new HashMap<>();dataMap0.put("title","我的标题");// 2.存循环的mapList<Map<String, Object>> list = new ArrayList<>();Map<String, Object> dataMap = new HashMap<>();dataMap.put("info1","红包");dataMap.put("info2","奖品1");dataMap.put("info3","奖品2");dataMap.put("info4","奖品3");dataMap.put("image",ImageUtil.getImageBase64String("C:/Users/jack/Desktop/a1.jpg"));dataMap.put("startMerge",startMerge); //合并单元格startdataMap.put("endMerge",endMerge); //合并单元格endlist.add(dataMap);Map<String, Object> dataMap2 = new HashMap<>();dataMap2.put("info1","红包2");dataMap2.put("info2","奖品2");dataMap2.put("info3","奖品3");dataMap2.put("info4","奖品4");dataMap2.put("image",ImageUtil.getImageBase64String("C:/Users/jack/Desktop/a2.jpg"));dataMap.put("startMerge",startMerge); //合并单元格startdataMap.put("endMerge",endMerge); //合并单元格endlist.add(dataMap2);dataMap0.put("list",list);return dataMap0;}
}
原理:${title} 替换 map中的值
重点介绍:如何通过 word 文档 创建 ftl 文件
1.另存为 xml 文件, 通过在线xml 格式化工具 格式下,地址:https://tool.hiofd.com/xml-format-online/
一行<w:tr></w:tr>一列
<w:tc></w:tc>合并单元格
<w:tcPr></w:tcPr>
这里要注意,在需要合并的单元格 tcpr 后面加上
${(item.startMerge)!''} //开始合并 ,其实就是动态取合并标签<w:vMerge w:val='restart'/> <w:vMerge/>
${(item.endMerge)!''} //结束合并,这里是需要传参的,例如 这里我只在 图片标识 和 图片的位置合并了单元格,那么只在这两块加就行
如果没有自动换行 而是展示的很完整 则不用删除。将base64 替换为 ${image},针对单个图片
另外 图片这里需要注意,<w:pict> 代表图片,如果是一张图片 那么直接用 ${image} 替换base64 即可,
但是 如果是 <#list itemList as item></#list> 循环获取图片,那么
<w:binData 的 name 和 <v:imagedata 的 src 都要换成${"wordml://0"+item_index+3+"00000"+".jpg"}<w:pict><w:binData w:name="${"wordml://0"+item_index+3+"00000"+".jpg"}">${item.image}</w:binData><v:shape id="_x0000_s1026" o:spt="75" alt="a2" type="#_x0000_t75" style="height:88.3pt;width:141.25pt;" filled="f" o:preferrelative="t" stroked="f" coordsize="21600,21600"><v:path/><v:fill on="f" focussize="0,0"/><v:stroke on="f"/><v:imagedata src="${"wordml://0"+item_index+3+"00000"+".jpg"}" o:title="a2"/><o:lock v:ext="edit" aspectratio="t"/><w10:wrap type="none"/><w10:anchorlock/></v:shape>
</w:pict>
这里贴上自己测试的ftl文件
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?mso-application progid="Word.Document"?>
<w:wordDocumentxmlns:w="http://schemas.microsoft.com/office/word/2003/wordml"xmlns:v="urn:schemas-microsoft-com:vml"xmlns:w10="urn:schemas-microsoft-com:office:word"xmlns:sl="http://schemas.microsoft.com/schemaLibrary/2003/core"xmlns:aml="http://schemas.microsoft.com/aml/2001/core"xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint"xmlns:o="urn:schemas-microsoft-com:office:office"xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" w:macrosPresent="no" w:embeddedObjPresent="no" w:ocxPresent="no" xml:space="preserve"xmlns:wpsCustomData="http://www.wps.cn/officeDocument/2013/wpsCustomData"><o:DocumentProperties><o:Author>ES</o:Author><o:LastAuthor>| ⃢ ⃢ </o:LastAuthor><o:Created>2023-06-27T02:11:49Z</o:Created><o:LastSaved>2023-06-27T02:37:52Z</o:LastSaved><o:TotalTime>17280</o:TotalTime><o:Pages>1</o:Pages><o:Words>28</o:Words><o:Characters>70</o:Characters><o:Lines>0</o:Lines><o:Paragraphs>0</o:Paragraphs><o:CharactersWithSpaces>70</o:CharactersWithSpaces><o:Version>14</o:Version></o:DocumentProperties><o:CustomDocumentProperties><o:KSOProductBuildVer dt:dt="string">2052-11.1.0.14309</o:KSOProductBuildVer><o:ICV dt:dt="string">C3D4A9D37C654DC8B579D006AED04DDC_12</o:ICV></o:CustomDocumentProperties><w:fonts><w:defaultFonts w:ascii="Calibri" w:fareast="宋体" w:h-ansi="Calibri" w:cs="Times New Roman"/><w:font w:name="Times New Roman"><w:panose-1 w:val="02020603050405020304"/><w:charset w:val="00"/><w:family w:val="Auto"/><w:pitch w:val="Default"/><w:sig w:usb-0="E0002EFF" w:usb-1="C000785B" w:usb-2="00000009" w:usb-3="00000000" w:csb-0="400001FF" w:csb-1="FFFF0000"/></w:font><w:font w:name="宋体"><w:panose-1 w:val="02010600030101010101"/><w:charset w:val="86"/><w:family w:val="Auto"/><w:pitch w:val="Default"/><w:sig w:usb-0="00000003" w:usb-1="288F0000" w:usb-2="00000006" w:usb-3="00000000" w:csb-0="00040001" w:csb-1="00000000"/></w:font><w:font w:name="Wingdings"><w:panose-1 w:val="05000000000000000000"/><w:charset w:val="02"/><w:family w:val="Auto"/><w:pitch w:val="Default"/><w:sig w:usb-0="00000000" w:usb-1="00000000" w:usb-2="00000000" w:usb-3="00000000" w:csb-0="80000000" w:csb-1="00000000"/></w:font><w:font w:name="Arial"><w:panose-1 w:val="020B0604020202020204"/><w:charset w:val="01"/><w:family w:val="SWiss"/><w:pitch w:val="Default"/><w:sig w:usb-0="E0002EFF" w:usb-1="C0007843" w:usb-2="00000009" w:usb-3="00000000" w:csb-0="400001FF" w:csb-1="FFFF0000"/></w:font><w:font w:name="黑体"><w:panose-1 w:val="02010609060101010101"/><w:charset w:val="86"/><w:family w:val="Auto"/><w:pitch w:val="Default"/><w:sig w:usb-0="800002BF" w:usb-1="38CF7CFA" w:usb-2="00000016" w:usb-3="00000000" w:csb-0="00040001" w:csb-1="00000000"/></w:font><w:font w:name="Courier New"><w:panose-1 w:val="02070309020205020404"/><w:charset w:val="01"/><w:family w:val="Modern"/><w:pitch w:val="Default"/><w:sig w:usb-0="E0002EFF" w:usb-1="C0007843" w:usb-2="00000009" w:usb-3="00000000" w:csb-0="400001FF" w:csb-1="FFFF0000"/></w:font><w:font w:name="Symbol"><w:panose-1 w:val="05050102010706020507"/><w:charset w:val="02"/><w:family w:val="Roman"/><w:pitch w:val="Default"/><w:sig w:usb-0="00000000" w:usb-1="00000000" w:usb-2="00000000" w:usb-3="00000000" w:csb-0="80000000" w:csb-1="00000000"/></w:font><w:font w:name="Calibri"><w:panose-1 w:val="020F0502020204030204"/><w:charset w:val="00"/><w:family w:val="SWiss"/><w:pitch w:val="Default"/><w:sig w:usb-0="E0002AFF" w:usb-1="C000247B" w:usb-2="00000009" w:usb-3="00000000" w:csb-0="200001FF" w:csb-1="00000000"/></w:font><w:font w:name="Wingdings"><w:panose-1 w:val="05000000000000000000"/><w:charset w:val="00"/><w:family w:val="Auto"/><w:pitch w:val="Default"/><w:sig w:usb-0="00000000" w:usb-1="00000000" w:usb-2="00000000" w:usb-3="00000000" w:csb-0="80000000" w:csb-1="00000000"/></w:font><w:font w:name="Arial"><w:panose-1 w:val="020B0604020202020204"/><w:charset w:val="00"/><w:family w:val="Auto"/><w:pitch w:val="Default"/><w:sig w:usb-0="E0002EFF" w:usb-1="C0007843" w:usb-2="00000009" w:usb-3="00000000" w:csb-0="400001FF" w:csb-1="FFFF0000"/></w:font><w:font w:name="Courier New"><w:panose-1 w:val="02070309020205020404"/><w:charset w:val="00"/><w:family w:val="Auto"/><w:pitch w:val="Default"/><w:sig w:usb-0="E0002EFF" w:usb-1="C0007843" w:usb-2="00000009" w:usb-3="00000000" w:csb-0="400001FF" w:csb-1="FFFF0000"/></w:font><w:font w:name="Symbol"><w:panose-1 w:val="05050102010706020507"/><w:charset w:val="00"/><w:family w:val="Auto"/><w:pitch w:val="Default"/><w:sig w:usb-0="00000000" w:usb-1="00000000" w:usb-2="00000000" w:usb-3="00000000" w:csb-0="80000000" w:csb-1="00000000"/></w:font></w:fonts><w:styles><w:latentStyles w:defLockedState="off" w:latentStyleCount="260"><w:lsdException w:name="Normal"/><w:lsdException w:name="heading 1"/><w:lsdException w:name="heading 2"/><w:lsdException w:name="heading 3"/><w:lsdException w:name="heading 4"/><w:lsdException w:name="heading 5"/><w:lsdException w:name="heading 6"/><w:lsdException w:name="heading 7"/><w:lsdException w:name="heading 8"/><w:lsdException w:name="heading 9"/><w:lsdException w:name="index 1"/><w:lsdException w:name="index 2"/><w:lsdException w:name="index 3"/><w:lsdException w:name="index 4"/><w:lsdException w:name="index 5"/><w:lsdException w:name="index 6"/><w:lsdException w:name="index 7"/><w:lsdException w:name="index 8"/><w:lsdException w:name="index 9"/><w:lsdException w:name="toc 1"/><w:lsdException w:name="toc 2"/><w:lsdException w:name="toc 3"/><w:lsdException w:name="toc 4"/><w:lsdException w:name="toc 5"/><w:lsdException w:name="toc 6"/><w:lsdException w:name="toc 7"/><w:lsdException w:name="toc 8"/><w:lsdException w:name="toc 9"/><w:lsdException w:name="Normal Indent"/><w:lsdException w:name="footnote text"/><w:lsdException w:name="annotation text"/><w:lsdException w:name="header"/><w:lsdException w:name="footer"/><w:lsdException w:name="index heading"/><w:lsdException w:name="caption"/><w:lsdException w:name="table of figures"/><w:lsdException w:name="envelope address"/><w:lsdException w:name="envelope return"/><w:lsdException w:name="footnote reference"/><w:lsdException w:name="annotation reference"/><w:lsdException w:name="line number"/><w:lsdException w:name="page number"/><w:lsdException w:name="endnote reference"/><w:lsdException w:name="endnote text"/><w:lsdException w:name="table of authorities"/><w:lsdException w:name="macro"/><w:lsdException w:name="toa heading"/><w:lsdException w:name="List"/><w:lsdException w:name="List Bullet"/><w:lsdException w:name="List Number"/><w:lsdException w:name="List 2"/><w:lsdException w:name="List 3"/><w:lsdException w:name="List 4"/><w:lsdException w:name="List 5"/><w:lsdException w:name="List Bullet 2"/><w:lsdException w:name="List Bullet 3"/><w:lsdException w:name="List Bullet 4"/><w:lsdException w:name="List Bullet 5"/><w:lsdException w:name="List Number 2"/><w:lsdException w:name="List Number 3"/><w:lsdException w:name="List Number 4"/><w:lsdException w:name="List Number 5"/><w:lsdException w:name="Title"/><w:lsdException w:name="Closing"/><w:lsdException w:name="Signature"/><w:lsdException w:name="Default Paragraph Font"/><w:lsdException w:name="Body Text"/><w:lsdException w:name="Body Text Indent"/><w:lsdException w:name="List Continue"/><w:lsdException w:name="List Continue 2"/><w:lsdException w:name="List Continue 3"/><w:lsdException w:name="List Continue 4"/><w:lsdException w:name="List Continue 5"/><w:lsdException w:name="Message Header"/><w:lsdException w:name="Subtitle"/><w:lsdException w:name="Salutation"/><w:lsdException w:name="Date"/><w:lsdException w:name="Body Text First Indent"/><w:lsdException w:name="Body Text First Indent 2"/><w:lsdException w:name="Note Heading"/><w:lsdException w:name="Body Text 2"/><w:lsdException w:name="Body Text 3"/><w:lsdException w:name="Body Text Indent 2"/><w:lsdException w:name="Body Text Indent 3"/><w:lsdException w:name="Block Text"/><w:lsdException w:name="Hyperlink"/><w:lsdException w:name="FollowedHyperlink"/><w:lsdException w:name="Strong"/><w:lsdException w:name="Emphasis"/><w:lsdException w:name="Document Map"/><w:lsdException w:name="Plain Text"/><w:lsdException w:name="E-mail Signature"/><w:lsdException w:name="Normal (Web)"/><w:lsdException w:name="HTML Acronym"/><w:lsdException w:name="HTML Address"/><w:lsdException w:name="HTML Cite"/><w:lsdException w:name="HTML Code"/><w:lsdException w:name="HTML Definition"/><w:lsdException w:name="HTML Keyboard"/><w:lsdException w:name="HTML Preformatted"/><w:lsdException w:name="HTML Sample"/><w:lsdException w:name="HTML Typewriter"/><w:lsdException w:name="HTML Variable"/><w:lsdException w:name="Normal Table"/><w:lsdException w:name="annotation subject"/><w:lsdException w:name="Table Simple 1"/><w:lsdException w:name="Table Simple 2"/><w:lsdException w:name="Table Simple 3"/><w:lsdException w:name="Table Classic 1"/><w:lsdException w:name="Table Classic 2"/><w:lsdException w:name="Table Classic 3"/><w:lsdException w:name="Table Classic 4"/><w:lsdException w:name="Table Colorful 1"/><w:lsdException w:name="Table Colorful 2"/><w:lsdException w:name="Table Colorful 3"/><w:lsdException w:name="Table Columns 1"/><w:lsdException w:name="Table Columns 2"/><w:lsdException w:name="Table Columns 3"/><w:lsdException w:name="Table Columns 4"/><w:lsdException w:name="Table Columns 5"/><w:lsdException w:name="Table Grid 1"/><w:lsdException w:name="Table Grid 2"/><w:lsdException w:name="Table Grid 3"/><w:lsdException w:name="Table Grid 4"/><w:lsdException w:name="Table Grid 5"/><w:lsdException w:name="Table Grid 6"/><w:lsdException w:name="Table Grid 7"/><w:lsdException w:name="Table Grid 8"/><w:lsdException w:name="Table List 1"/><w:lsdException w:name="Table List 2"/><w:lsdException w:name="Table List 3"/><w:lsdException w:name="Table List 4"/><w:lsdException w:name="Table List 5"/><w:lsdException w:name="Table List 6"/><w:lsdException w:name="Table List 7"/><w:lsdException w:name="Table List 8"/><w:lsdException w:name="Table 3D effects 1"/><w:lsdException w:name="Table 3D effects 2"/><w:lsdException w:name="Table 3D effects 3"/><w:lsdException w:name="Table Contemporary"/><w:lsdException w:name="Table Elegant"/><w:lsdException w:name="Table Professional"/><w:lsdException w:name="Table Subtle 1"/><w:lsdException w:name="Table Subtle 2"/><w:lsdException w:name="Table Web 1"/><w:lsdException w:name="Table Web 2"/><w:lsdException w:name="Table Web 3"/><w:lsdException w:name="Balloon Text"/><w:lsdException w:name="Table Grid"/><w:lsdException w:name="Table Theme"/><w:lsdException w:name="Light Shading"/><w:lsdException w:name="Light List"/><w:lsdException w:name="Light Grid"/><w:lsdException w:name="Medium Shading 1"/><w:lsdException w:name="Medium Shading 2"/><w:lsdException w:name="Medium List 1"/><w:lsdException w:name="Medium List 2"/><w:lsdException w:name="Medium Grid 1"/><w:lsdException w:name="Medium Grid 2"/><w:lsdException w:name="Medium Grid 3"/><w:lsdException w:name="Dark List"/><w:lsdException w:name="Colorful Shading"/><w:lsdException w:name="Colorful List"/><w:lsdException w:name="Colorful Grid"/><w:lsdException w:name="Light Shading Accent 1"/><w:lsdException w:name="Light List Accent 1"/><w:lsdException w:name="Light Grid Accent 1"/><w:lsdException w:name="Medium Shading 1 Accent 1"/><w:lsdException w:name="Medium Shading 2 Accent 1"/><w:lsdException w:name="Medium List 1 Accent 1"/><w:lsdException w:name="Medium List 2 Accent 1"/><w:lsdException w:name="Medium Grid 1 Accent 1"/><w:lsdException w:name="Medium Grid 2 Accent 1"/><w:lsdException w:name="Medium Grid 3 Accent 1"/><w:lsdException w:name="Dark List Accent 1"/><w:lsdException w:name="Colorful Shading Accent 1"/><w:lsdException w:name="Colorful List Accent 1"/><w:lsdException w:name="Colorful Grid Accent 1"/><w:lsdException w:name="Light Shading Accent 2"/><w:lsdException w:name="Light List Accent 2"/><w:lsdException w:name="Light Grid Accent 2"/><w:lsdException w:name="Medium Shading 1 Accent 2"/><w:lsdException w:name="Medium Shading 2 Accent 2"/><w:lsdException w:name="Medium List 1 Accent 2"/><w:lsdException w:name="Medium List 2 Accent 2"/><w:lsdException w:name="Medium Grid 1 Accent 2"/><w:lsdException w:name="Medium Grid 2 Accent 2"/><w:lsdException w:name="Medium Grid 3 Accent 2"/><w:lsdException w:name="Dark List Accent 2"/><w:lsdException w:name="Colorful Shading Accent 2"/><w:lsdException w:name="Colorful List Accent 2"/><w:lsdException w:name="Colorful Grid Accent 2"/><w:lsdException w:name="Light Shading Accent 3"/><w:lsdException w:name="Light List Accent 3"/><w:lsdException w:name="Light Grid Accent 3"/><w:lsdException w:name="Medium Shading 1 Accent 3"/><w:lsdException w:name="Medium Shading 2 Accent 3"/><w:lsdException w:name="Medium List 1 Accent 3"/><w:lsdException w:name="Medium List 2 Accent 3"/><w:lsdException w:name="Medium Grid 1 Accent 3"/><w:lsdException w:name="Medium Grid 2 Accent 3"/><w:lsdException w:name="Medium Grid 3 Accent 3"/><w:lsdException w:name="Dark List Accent 3"/><w:lsdException w:name="Colorful Shading Accent 3"/><w:lsdException w:name="Colorful List Accent 3"/><w:lsdException w:name="Colorful Grid Accent 3"/><w:lsdException w:name="Light Shading Accent 4"/><w:lsdException w:name="Light List Accent 4"/><w:lsdException w:name="Light Grid Accent 4"/><w:lsdException w:name="Medium Shading 1 Accent 4"/><w:lsdException w:name="Medium Shading 2 Accent 4"/><w:lsdException w:name="Medium List 1 Accent 4"/><w:lsdException w:name="Medium List 2 Accent 4"/><w:lsdException w:name="Medium Grid 1 Accent 4"/><w:lsdException w:name="Medium Grid 2 Accent 4"/><w:lsdException w:name="Medium Grid 3 Accent 4"/><w:lsdException w:name="Dark List Accent 4"/><w:lsdException w:name="Colorful Shading Accent 4"/><w:lsdException w:name="Colorful List Accent 4"/><w:lsdException w:name="Colorful Grid Accent 4"/><w:lsdException w:name="Light Shading Accent 5"/><w:lsdException w:name="Light List Accent 5"/><w:lsdException w:name="Light Grid Accent 5"/><w:lsdException w:name="Medium Shading 1 Accent 5"/><w:lsdException w:name="Medium Shading 2 Accent 5"/><w:lsdException w:name="Medium List 1 Accent 5"/><w:lsdException w:name="Medium List 2 Accent 5"/><w:lsdException w:name="Medium Grid 1 Accent 5"/><w:lsdException w:name="Medium Grid 2 Accent 5"/><w:lsdException w:name="Medium Grid 3 Accent 5"/><w:lsdException w:name="Dark List Accent 5"/><w:lsdException w:name="Colorful Shading Accent 5"/><w:lsdException w:name="Colorful List Accent 5"/><w:lsdException w:name="Colorful Grid Accent 5"/><w:lsdException w:name="Light Shading Accent 6"/><w:lsdException w:name="Light List Accent 6"/><w:lsdException w:name="Light Grid Accent 6"/><w:lsdException w:name="Medium Shading 1 Accent 6"/><w:lsdException w:name="Medium Shading 2 Accent 6"/><w:lsdException w:name="Medium List 1 Accent 6"/><w:lsdException w:name="Medium List 2 Accent 6"/><w:lsdException w:name="Medium Grid 1 Accent 6"/><w:lsdException w:name="Medium Grid 2 Accent 6"/><w:lsdException w:name="Medium Grid 3 Accent 6"/><w:lsdException w:name="Dark List Accent 6"/><w:lsdException w:name="Colorful Shading Accent 6"/><w:lsdException w:name="Colorful List Accent 6"/><w:lsdException w:name="Colorful Grid Accent 6"/></w:latentStyles><w:style w:type="paragraph" w:styleId="a1" w:default="on"><w:name w:val="Normal"/><w:pPr><w:widowControl w:val="off"/><w:jc w:val="both"/></w:pPr><w:rPr><w:rFonts w:ascii="Calibri" w:h-ansi="Calibri" w:fareast="宋体" w:cs="Times New Roman" w:hint="default"/><w:kern w:val="2"/><w:sz w:val="21"/><w:sz-cs w:val="24"/><w:lang w:val="EN-US" w:fareast="ZH-CN" w:bidi="AR-SA"/></w:rPr></w:style><w:style w:type="character" w:styleId="a4" w:default="on"><w:name w:val="Default Paragraph Font"/></w:style><w:style w:type="table" w:styleId="a2" w:default="on"><w:name w:val="Normal Table"/><w:semiHidden/><w:tblPr><w:tblCellMar><w:top w:w="0" w:type="dxa"/><w:left w:w="108" w:type="dxa"/><w:bottom w:w="0" w:type="dxa"/><w:right w:w="108" w:type="dxa"/></w:tblCellMar></w:tblPr></w:style><w:style w:type="table" w:styleId="a3"><w:name w:val="Table Grid"/><w:basedOn w:val="a2"/><w:pPr><w:pStyle w:val="a2"/><w:widowControl w:val="off"/><w:jc w:val="both"/></w:pPr><w:tblPr><w:tblBorders><w:top w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/><w:left w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/><w:bottom w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/><w:right w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/><w:insideH w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/><w:insideV w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/></w:tblBorders><w:tblCellMar><w:top w:w="0" w:type="dxa"/><w:left w:w="108" w:type="dxa"/><w:bottom w:w="0" w:type="dxa"/><w:right w:w="108" w:type="dxa"/></w:tblCellMar></w:tblPr></w:style></w:styles><w:bgPict><w:background/><v:background id="_x0000_s1025"><v:fill on="f" focussize="0,0"/></v:background></w:bgPict><w:docPr><w:view w:val="print"/><w:zoom w:percent="110"/><w:characterSpacingControl w:val="CompressPunctuation"/><w:documentProtection w:enforcement="off"/><w:punctuationKerning/><w:bordersDontSurroundHeader/><w:bordersDontSurroundFooter/><w:defaultTabStop w:val="420"/><w:drawingGridVerticalSpacing w:val="156"/><w:displayHorizontalDrawingGridEvery w:val="0"/><w:displayVerticalDrawingGridEvery w:val="2"/><w:compat><w:adjustLineHeightInTable/><w:ulTrailSpace/><w:doNotExpandShiftReturn/><w:balanceSingleByteDoubleByteWidth/><w:useFELayout/><w:spaceForUL/><w:wrapTextWithPunct/><w:breakWrappedTables/><w:useAsianBreakRules/><w:dontGrowAutofit/><w:useFELayout/></w:compat></w:docPr><w:body><wx:sect><w:p><w:pPr><w:ind w:left="1680" w:first-line="420" w:first-line-chars="0"/><w:rPr><w:rFonts w:hint="fareast"/><w:b/><w:sz w:val="52"/><w:sz-cs w:val="52"/><w:lang w:val="EN-US" w:fareast="ZH-CN"/></w:rPr></w:pPr><w:r><w:rPr><w:rFonts w:hint="fareast"/><w:b/><w:sz w:val="52"/><w:sz-cs w:val="52"/><w:lang w:val="EN-US" w:fareast="ZH-CN"/></w:rPr><w:t>公共卫生文档</w:t></w:r></w:p><w:p><w:pPr><w:ind w:left="1680" w:first-line="420" w:first-line-chars="0"/><w:rPr><w:rFonts w:hint="fareast"/><w:b/><w:sz w:val="52"/><w:sz-cs w:val="52"/><w:lang w:val="EN-US" w:fareast="ZH-CN"/></w:rPr></w:pPr></w:p><w:tbl><w:tblPr><w:tblStyle w:val="a3"/><w:tblW w:w="0" w:type="auto"/><w:tblInd w:w="0" w:type="dxa"/><w:tblBorders><w:top w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/><w:left w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/><w:bottom w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/><w:right w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/><w:insideH w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/><w:insideV w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/></w:tblBorders><w:tblCellMar><w:top w:w="0" w:type="dxa"/><w:left w:w="108" w:type="dxa"/><w:bottom w:w="0" w:type="dxa"/><w:right w:w="108" w:type="dxa"/></w:tblCellMar></w:tblPr><w:tblGrid><w:gridCol w:w="1704"/><w:gridCol w:w="1704"/><w:gridCol w:w="1704"/><w:gridCol w:w="1705"/></w:tblGrid><w:tr><w:tblPrEx><w:tblBorders><w:top w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/><w:left w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/><w:bottom w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/><w:right w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/><w:insideH w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/><w:insideV w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/></w:tblBorders><w:tblCellMar><w:top w:w="0" w:type="dxa"/><w:left w:w="108" w:type="dxa"/><w:bottom w:w="0" w:type="dxa"/><w:right w:w="108" w:type="dxa"/></w:tblCellMar></w:tblPrEx><w:trPr/><w:tc><w:tcPr><w:tcW w:w="1704" w:type="dxa"/><w:shd w:val="clear" w:color="auto" w:fill="auto"/></w:tcPr><w:p><w:pPr><w:widowControl w:val="off"/><w:jc w:val="center"/><w:rPr><w:rFonts w:hint="default"/><w:b w:val="off"/><w:sz w:val="28"/><w:sz-cs w:val="28"/><w:vertAlign w:val="baseline"/><w:lang w:val="EN-US" w:fareast="ZH-CN"/></w:rPr></w:pPr><w:r><w:rPr><w:rFonts w:hint="fareast"/><w:b w:val="off"/><w:sz w:val="28"/><w:sz-cs w:val="28"/><w:vertAlign w:val="baseline"/><w:lang w:val="EN-US" w:fareast="ZH-CN"/></w:rPr><w:t>标题</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcW w:w="5113" w:type="dxa"/><w:gridSpan w:val="3"/><w:shd w:val="clear" w:color="auto" w:fill="auto"/></w:tcPr><w:p><w:pPr><w:widowControl w:val="off"/><w:jc w:val="center"/><w:rPr><w:rFonts w:hint="default"/><w:b w:val="off"/><w:sz w:val="28"/><w:sz-cs w:val="28"/><w:vertAlign w:val="baseline"/><w:lang w:val="EN-US" w:fareast="ZH-CN"/></w:rPr></w:pPr><w:r><w:rPr><w:rFonts w:hint="fareast"/><w:b w:val="off"/><w:sz w:val="28"/><w:sz-cs w:val="28"/><w:vertAlign w:val="baseline"/><w:lang w:val="EN-US" w:fareast="ZH-CN"/></w:rPr><w:t>${title}</w:t></w:r></w:p></w:tc></w:tr><#list list as item><w:tr><w:tblPrEx><w:tblBorders><w:top w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/><w:left w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/><w:bottom w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/><w:right w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/><w:insideH w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/><w:insideV w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/></w:tblBorders><w:tblCellMar><w:top w:w="0" w:type="dxa"/><w:left w:w="108" w:type="dxa"/><w:bottom w:w="0" w:type="dxa"/><w:right w:w="108" w:type="dxa"/></w:tblCellMar></w:tblPrEx><w:trPr/><w:tc><w:tcPr><w:tcW w:w="1704" w:type="dxa"/><w:shd w:val="clear" w:color="auto" w:fill="auto"/></w:tcPr><w:p><w:pPr><w:widowControl w:val="off"/><w:jc w:val="center"/><w:rPr><w:rFonts w:hint="default"/><w:b w:val="off"/><w:sz w:val="28"/><w:sz-cs w:val="28"/><w:vertAlign w:val="baseline"/><w:lang w:val="EN-US" w:fareast="ZH-CN"/></w:rPr></w:pPr><w:r><w:rPr><w:rFonts w:hint="fareast"/><w:b w:val="off"/><w:sz w:val="28"/><w:sz-cs w:val="28"/><w:vertAlign w:val="baseline"/><w:lang w:val="EN-US" w:fareast="ZH-CN"/></w:rPr><w:t>来源</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcW w:w="1704" w:type="dxa"/><w:shd w:val="clear" w:color="auto" w:fill="auto"/></w:tcPr><w:p><w:pPr><w:widowControl w:val="off"/><w:jc w:val="center"/><w:rPr><w:rFonts w:hint="default"/><w:b w:val="off"/><w:sz w:val="28"/><w:sz-cs w:val="28"/><w:vertAlign w:val="baseline"/><w:lang w:val="EN-US" w:fareast="ZH-CN"/></w:rPr></w:pPr><w:r><w:rPr><w:rFonts w:hint="fareast"/><w:b w:val="off"/><w:sz w:val="28"/><w:sz-cs w:val="28"/><w:vertAlign w:val="baseline"/><w:lang w:val="EN-US" w:fareast="ZH-CN"/></w:rPr><w:t>${item.info1}</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcW w:w="1704" w:type="dxa"/><w:shd w:val="clear" w:color="auto" w:fill="auto"/></w:tcPr><w:p><w:pPr><w:widowControl w:val="off"/><w:jc w:val="center"/><w:rPr><w:rFonts w:hint="default"/><w:b w:val="off"/><w:sz w:val="28"/><w:sz-cs w:val="28"/><w:vertAlign w:val="baseline"/><w:lang w:val="EN-US" w:fareast="ZH-CN"/></w:rPr></w:pPr><w:r><w:rPr><w:rFonts w:hint="fareast"/><w:b w:val="off"/><w:sz w:val="28"/><w:sz-cs w:val="28"/><w:vertAlign w:val="baseline"/><w:lang w:val="EN-US" w:fareast="ZH-CN"/></w:rPr><w:t>所属公司</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcW w:w="1705" w:type="dxa"/><w:shd w:val="clear" w:color="auto" w:fill="auto"/></w:tcPr><w:p><w:pPr><w:widowControl w:val="off"/><w:jc w:val="center"/><w:rPr><w:rFonts w:hint="default"/><w:b w:val="off"/><w:sz w:val="28"/><w:sz-cs w:val="28"/><w:vertAlign w:val="baseline"/><w:lang w:val="EN-US" w:fareast="ZH-CN"/></w:rPr></w:pPr><w:r><w:rPr><w:rFonts w:hint="fareast"/><w:b w:val="off"/><w:sz w:val="28"/><w:sz-cs w:val="28"/><w:vertAlign w:val="baseline"/><w:lang w:val="EN-US" w:fareast="ZH-CN"/></w:rPr><w:t>${item.info2}</w:t></w:r></w:p></w:tc></w:tr><w:tr><w:tblPrEx><w:tblBorders><w:top w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/><w:left w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/><w:bottom w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/><w:right w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/><w:insideH w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/><w:insideV w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/></w:tblBorders><w:tblCellMar><w:top w:w="0" w:type="dxa"/><w:left w:w="108" w:type="dxa"/><w:bottom w:w="0" w:type="dxa"/><w:right w:w="108" w:type="dxa"/></w:tblCellMar></w:tblPrEx><w:trPr/><w:tc><w:tcPr><w:tcW w:w="1704" w:type="dxa"/><w:shd w:val="clear" w:color="auto" w:fill="auto"/></w:tcPr><w:p><w:pPr><w:widowControl w:val="off"/><w:jc w:val="center"/><w:rPr><w:rFonts w:hint="default"/><w:b w:val="off"/><w:sz w:val="28"/><w:sz-cs w:val="28"/><w:vertAlign w:val="baseline"/><w:lang w:val="EN-US" w:fareast="ZH-CN"/></w:rPr></w:pPr><w:r><w:rPr><w:rFonts w:hint="fareast"/><w:b w:val="off"/><w:sz w:val="28"/><w:sz-cs w:val="28"/><w:vertAlign w:val="baseline"/><w:lang w:val="EN-US" w:fareast="ZH-CN"/></w:rPr><w:t>属性</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcW w:w="1704" w:type="dxa"/><w:shd w:val="clear" w:color="auto" w:fill="auto"/></w:tcPr><w:p><w:pPr><w:widowControl w:val="off"/><w:jc w:val="center"/><w:rPr><w:rFonts w:hint="default"/><w:b w:val="off"/><w:sz w:val="28"/><w:sz-cs w:val="28"/><w:vertAlign w:val="baseline"/><w:lang w:val="EN-US" w:fareast="ZH-CN"/></w:rPr></w:pPr><w:r><w:rPr><w:rFonts w:hint="fareast"/><w:b w:val="off"/><w:sz w:val="28"/><w:sz-cs w:val="28"/><w:vertAlign w:val="baseline"/><w:lang w:val="EN-US" w:fareast="ZH-CN"/></w:rPr><w:t>${item.info3}</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcW w:w="1704" w:type="dxa"/><w:shd w:val="clear" w:color="auto" w:fill="auto"/></w:tcPr><w:p><w:pPr><w:widowControl w:val="off"/><w:jc w:val="center"/><w:rPr><w:rFonts w:hint="default"/><w:b w:val="off"/><w:sz w:val="28"/><w:sz-cs w:val="28"/><w:vertAlign w:val="baseline"/><w:lang w:val="EN-US" w:fareast="ZH-CN"/></w:rPr></w:pPr><w:r><w:rPr><w:rFonts w:hint="fareast"/><w:b w:val="off"/><w:sz w:val="28"/><w:sz-cs w:val="28"/><w:vertAlign w:val="baseline"/><w:lang w:val="EN-US" w:fareast="ZH-CN"/></w:rPr><w:t>作者</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcW w:w="1705" w:type="dxa"/><w:shd w:val="clear" w:color="auto" w:fill="auto"/></w:tcPr><w:p><w:pPr><w:widowControl w:val="off"/><w:jc w:val="center"/><w:rPr><w:rFonts w:hint="default"/><w:b w:val="off"/><w:sz w:val="28"/><w:sz-cs w:val="28"/><w:vertAlign w:val="baseline"/><w:lang w:val="EN-US" w:fareast="ZH-CN"/></w:rPr></w:pPr><w:r><w:rPr><w:rFonts w:hint="fareast"/><w:b w:val="off"/><w:sz w:val="28"/><w:sz-cs w:val="28"/><w:vertAlign w:val="baseline"/><w:lang w:val="EN-US" w:fareast="ZH-CN"/></w:rPr><w:t>${item.info4}</w:t></w:r></w:p></w:tc></w:tr><w:tr><w:tblPrEx><w:tblBorders><w:top w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/><w:left w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/><w:bottom w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/><w:right w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/><w:insideH w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/><w:insideV w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/></w:tblBorders><w:tblCellMar><w:top w:w="0" w:type="dxa"/><w:left w:w="108" w:type="dxa"/><w:bottom w:w="0" w:type="dxa"/><w:right w:w="108" w:type="dxa"/></w:tblCellMar></w:tblPrEx><w:trPr><w:trHeight w:val="1238" w:h-rule="atLeast"/></w:trPr><w:tc><w:tcPr><w:tcW w:w="1704" w:type="dxa"/><w:shd w:val="clear" w:color="auto" w:fill="auto"/>${(item.startMerge)!''}${(item.endMerge)!''}</w:tcPr><w:p><w:pPr><w:widowControl w:val="off"/><w:jc w:val="center"/><w:rPr><w:rFonts w:hint="default"/><w:b w:val="off"/><w:sz w:val="28"/><w:sz-cs w:val="28"/><w:vertAlign w:val="baseline"/><w:lang w:val="EN-US" w:fareast="ZH-CN"/></w:rPr></w:pPr><w:r><w:rPr><w:rFonts w:hint="fareast"/><w:b w:val="off"/><w:sz w:val="28"/><w:sz-cs w:val="28"/><w:vertAlign w:val="baseline"/><w:lang w:val="EN-US" w:fareast="ZH-CN"/></w:rPr><w:t>图片标识</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcW w:w="5113" w:type="dxa"/><w:gridSpan w:val="3"/><w:shd w:val="clear" w:color="auto" w:fill="auto"/>${(item.startMerge)!''}${(item.endMerge)!''}</w:tcPr><w:p><w:pPr><w:widowControl w:val="off"/><w:jc w:val="center"/><w:rPr><w:rFonts w:hint="default"/><w:b w:val="off"/><w:sz w:val="28"/><w:sz-cs w:val="28"/><w:vertAlign w:val="baseline"/><w:lang w:val="EN-US" w:fareast="ZH-CN"/></w:rPr></w:pPr><w:r><w:rPr><w:rFonts w:hint="default"/><w:b w:val="off"/><w:sz w:val="28"/><w:sz-cs w:val="28"/><w:vertAlign w:val="baseline"/><w:lang w:val="EN-US" w:fareast="ZH-CN"/></w:rPr><w:pict><w:binData w:name="${"wordml://0"+item_index+3+"00000"+".jpg"}">${item.image}</w:binData><v:shape id="_x0000_s1026" o:spt="75" alt="a2" type="#_x0000_t75" style="height:88.3pt;width:141.25pt;" filled="f" o:preferrelative="t" stroked="f" coordsize="21600,21600"><v:path/><v:fill on="f" focussize="0,0"/><v:stroke on="f"/><v:imagedata src="${"wordml://0"+item_index+3+"00000"+".jpg"}" o:title="a2"/><o:lock v:ext="edit" aspectratio="t"/><w10:wrap type="none"/><w10:anchorlock/></v:shape></w:pict></w:r></w:p></w:tc></w:tr></#list></w:tbl><w:p><w:pPr><w:ind w:left="1680" w:first-line="420" w:first-line-chars="0"/><w:rPr><w:rFonts w:hint="default"/><w:b/><w:sz w:val="52"/><w:sz-cs w:val="52"/><w:lang w:val="EN-US" w:fareast="ZH-CN"/></w:rPr></w:pPr></w:p><w:sectPr><w:pgSz w:w="11906" w:h="16838"/><w:pgMar w:top="1440" w:right="1800" w:bottom="1440" w:left="1800" w:header="851" w:footer="992" w:gutter="0"/><w:cols w:space="425"/><w:docGrid w:type="lines" w:line-pitch="312"/></w:sectPr></wx:sect></w:body>
</w:wordDocument>
word 模板
生成的效果
参考:
https://blog.csdn.net/weixin_46174854/article/details/116855252
https://blog.csdn.net/weixin_45853881/article/details/129298494
https://blog.csdn.net/qq_42851623/article/details/122879852
https://blog.csdn.net/weixin_45103378/article/details/118395284
https://www.cnblogs.com/ayueC/p/15118381.html