第一步:word模板
需要输出的数据用jstl表达式写好,图片先选一张,调整好大小
第二步:格式转换
将word另存为xml---->扩展名修改为ftl---->找到图片base64,删除替换成对于的jstl
第三步:代码部分
public static void main(String[] args) throws Exception {
Map<String, String> dataMap = new HashMap<String, String>();
dataMap.put("sname", "");
dataMap.put("ssex", "");
dataMap.put("symd", "");
dataMap.put("sPhysicalcondition", "");
dataMap.put("smobile", "");
dataMap.put("sid", "");
dataMap.put("shomephone", "");
dataMap.put("saddress", "");
dataMap.put("sproof", "");
dataMap.put("spic",GetImageStrFromUrl("imgurl"));
Configuration configuration = new Configuration();
configuration.setDefaultEncoding("utf-8");
configuration.setDirectoryForTemplateLoading(new File("D:/"));
File outFile = new File("D:/test.doc");
Template t = configuration.getTemplate("bmb.ftl", "utf-8");
Writer out = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(outFile), "utf-8"), 10240);
t.process(dataMap, out);
out.close();
}
public static String GetImageStrFromUrl(String imgURL) {
byte[] data = null;
try {
// 创建URL
URL url = new URL(imgURL);
// 创建链接
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setConnectTimeout(5 * 1000);
InputStream inStream = conn.getInputStream();
data = new byte[inStream.available()];
inStream.read(data);
inStream.close();
} catch (IOException e) {
e.printStackTrace();
}
// 对字节数组Base64编码
BASE64Encoder encoder = new BASE64Encoder();
// 返回Base64编码过的字节数组字符串
return encoder.encode(data);
}