我这里使用的是freemarker-2.3.23.jar

freemarker来导出word

说一下,图片如何插入

插入成功后

关于ftl的模板如何生成呢!!

打开所需要的模板-选择另存为-其他格式

然后选择Word 2003XML文档(*.xml),点击保存

然后,将test.xml后缀名改为 test.ftl

接下里打开test.ftl

图中这个就是base64编码将它改成我们所需要的参数

然后 有两种方式来导出图片

package cn.com.tiza.hjwulian.system.common.util;

import freemarker.template.Configuration;

import freemarker.template.Template;

import sun.misc.BASE64Encoder;

import java.io.*;

import java.net.HttpURLConnection;

import java.net.URL;

import java.util.Map;

/**

* @Desc:word操作工具类

* @Author:LGL

*/

public class WordUtil {

/**

* @param dataMap word中需要展示的动态数据,用map集合来保存

* @param templateName word模板名称,例如:test.ftl

* @param filePath 文件生成的目标路径,例如:D:/wordFile/

* @param fileName 生成的文件名称,例如:test.doc

* @Desc:生成word文件

* @Author:LGL

*/

@SuppressWarnings("unchecked")

public void createWord(Map dataMap, String templateName, String filePath, String fileName) {

try {

//创建配置实例

Configuration configuration = new Configuration();

//设置编码

configuration.setDefaultEncoding("UTF-8");

//ftl模板文件统一放至 com.lun.template 包下面com.admin.wordtest /yuanda-biz/src/main/java/com/zkingsoft/tools/xzcvs.ftl

configuration.setClassForTemplateLoading(WordUtil.class, "/");

//获取模板

Template template = configuration.getTemplate(templateName);

//输出文件

File outFile = new File(filePath + File.separator + fileName);

//如果输出目标文件夹不存在,则创建

if (!outFile.getParentFile().exists()) {

outFile.getParentFile().mkdirs();

}

//将模板和数据模型合并生成文件

Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile), "UTF-8"));

//生成文件

template.process(dataMap, out);

//关闭流

out.flush();

out.close();

} catch (Exception e) {

e.printStackTrace();

}

}

/**

* 获取图片对应的base64码

*

* 图片

*

* @return 图片对应的base64码

* @throws IOException

* @date 2018/11/16 17:05

*/

//获得图片的base64码

public static String getImageBase(String src) throws Exception {

if (src == null || src == "") {

return "";

}

File file = new File(src);

if (!file.exists()) {

return "";

}

InputStream in = null;

byte[] data = null;

try {

in = new FileInputStream(file);

data = new byte[in.available()];

in.read(data);

in.close();

} catch (IOException e) {

e.printStackTrace();

}

BASE64Encoder encoder = new BASE64Encoder();

return encoder.encode(data);

}

/**

* 远程读取image转换为Base64字符串

*

* @param imgUrl

* @return

*/

public static String Image2Base64(String imgUrl) {

URL url = null;

InputStream is = null;

ByteArrayOutputStream outStream = null;

HttpURLConnection httpUrl = null;

try {

url = new URL(imgUrl);

httpUrl = (HttpURLConnection) url.openConnection();

httpUrl.connect();

httpUrl.getInputStream();

is = httpUrl.getInputStream();

outStream = new ByteArrayOutputStream();

//创建一个Buffer字符串

byte[] buffer = new byte[1024];

//每次读取的字符串长度,如果为-1,代表全部读取完毕

int len = 0;

//使用一个输入流从buffer里把数据读取出来

while ((len = is.read(buffer)) != -1) {

//用输出流往buffer里写入数据,中间参数代表从哪个位置开始读,len代表读取的长度

outStream.write(buffer, 0, len);

}

// 对字节数组Base64编码

return new BASE64Encoder().encode(outStream.toByteArray());

} catch (Exception e) {

e.printStackTrace();

} //下载

finally {

if (is != null) {

try {

is.close();

} catch (IOException e) {

e.printStackTrace();

}

}

if (outStream != null) {

try {

outStream.close();

} catch (IOException e) {

e.printStackTrace();

}

}

if (httpUrl != null) {

httpUrl.disconnect();

}

}

return imgUrl;

}

}

其中第一种就是获取本地图片转成Base64编码

第二种是通过远程读取图片来转成Base64编码

MapdataMap = new HashMap();

//日期

dataMap.put("date", "2019-9-10");

//图片

dataMap.put("image",WordUtil.Image2Base64("http://localhost:8080/images/test.jpg"));

/** 生成word */

WordUtil wordUtil = new WordUtil();

wordUtil.createWord(dataMap, "temp.ftl", configInfo.getOutputLocalPath() +folder, fileName);

然后通过Map将对应的值带入word模板中

导出效果如下

java怎么把照片导出来,JAVA将图片转成base64导出到word中相关推荐

  1. JAVA解析html文档,替换img图片路径成base64编码,并将文章存入数据库

    转载自  JAVA解析html文档,替换img图片路径成base64编码,并将文章存入数据库 开发环境:struts2+ spring + hibernate 数据库:oracle 需求:在HTML编 ...

  2. java 图片转成base64编码_java语言中如何将一个图片转换为base64编码的数据呢?

    摘要: 下文讲述java语言中将图片转换为base64编码的方法分享,如下所示: 例: /* file为图片文件对象 filePath为转换后base64的存储位置 */ public static ...

  3. java实现将图片读取成base64字符串,将base64字符串存储为图片。

    全栈工程师开发手册 (作者:栾鹏) java教程全解 java实现将图片读取成base64字符串 ,将base64字符串存储为图片. 将图片转化为字符串以后,由于字符串更方便在网络上通过ajax传输. ...

  4. java将图片转成Base64编码,并压缩至40k

    1.添加jar包 <!-- 压缩图片--> <dependency><groupId>net.coobird</groupId><artifact ...

  5. java图片转成base64传给前端

    base64 1.base64的含义 2.base64的java转换 1.base64的含义 Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,在发送电子邮件时,服务器认证的用户名和 ...

  6. JAVA将图片转成Base64

    在日常的开发中,图片展示是一个经常见的开发任务,而图片展示也有好多种方式.但也有一种是通过转成Base64编码来完成.下面就是通过流转成Base64编码的主要代码. try (InputStream ...

  7. java导出word并向导出的word中添加附件

    word可以转换为xml格式(另存为的时候可以选择文件类型) 当转换为xml格式后我们可以发现在附件位置存储的其实是附件的base64字符串. 因此,我们可以在模板中添加一个附件作为占位,而后我们将模 ...

  8. java图片文件字符串jsp_将图片转成base64字符串并在JSP页面显示的Java代码

    *本事例主要讲了如下几点: * 1:将图片转换为BASE64加密字符串. * 2:将图片流转换为BASE64加密字符串. * 3:将BASE64加密字符串转换为图片. * 4:在jsp文件中以引用的方 ...

  9. 将图片转成base64字符串并在JSP页面显示的Java代码

    *本事例主要讲了如下几点:  * 1:将图片转换为BASE64加密字符串.  * 2:将图片流转换为BASE64加密字符串.  * 3:将BASE64加密字符串转换为图片. * 4:在jsp文件中以引 ...

  10. java 生成二维码后叠加LOGO并转换成base64

    1.代码 见文末推荐 2.测试 测试1:生成base64码 public static void main(String[] args) throws Exception {String data = ...

最新文章

  1. 胜者树和败者树 - qianye0905 - 博客园
  2. 洛谷P5173 传球(暴力)
  3. Oracle分析函数三——SUM,AVG,MIN,MAX,COUNT
  4. python 清空文件夹_Python初学者请注意!别这样直接运行python命令,否则电脑等于“裸奔”...
  5. koa2 mysql_koa2+vue+mysql 全栈开发记录
  6. 组合算法 C++高效实现 (二进制辅助法)
  7. iframe 父级元素查找
  8. jquery on()绑定的点击事件在js动态新添加的元素上无效
  9. 《麦肯锡方法》第3章“二八法则”与其他-思维导图
  10. html的跳转页面代码
  11. 关于sentaurus使用感
  12. 手机浏览器下载文件名乱码解决
  13. Tomcat 如何生成SSL安全证书(拜读、学习、记录) and 如何用OpenSSl生成服务端证书 other 简述cer和crt后缀的证书的区别
  14. 2020年计算机夏令营总结
  15. Cadence OrCAD Capture 原理图设计过程产生的文件总结与说明
  16. yun2win发布即时通讯云IM,做最安全的即时通讯云!
  17. 转:经典Excel VBA代码
  18. Java程序设计(2021春)——第三章类的重用笔记与思考
  19. 那些不得不说的性能优化套路
  20. C标签获取list长度

热门文章

  1. Golang里的Future/Promise
  2. angualrjs学习总结二(作用域、控制器、过滤器)
  3. 强人工智能:抑制神经元的意义
  4. java 方法描述符_整理Java编程中常用的基本描述符与运算符
  5. python小游戏,植物大战僵尸,免费源代码分享,少儿编程体验项目,项目注释详细,可更改游戏参数,关注私聊“关注即送植物大战僵尸源代码”即可免费获得
  6. c# html正则,c# 使用正则解析html
  7. 属性子集选择的基本启发方法_2017.06.29数据挖掘基础概念第二.三章
  8. python integer函数_python - Floor函数消除了Integer科学符号,Python - 堆栈内存溢出
  9. fluentmigrator连接mysql_如何利用FluentMigrator实现数据库迁移
  10. DOM之操作元素(附实例)