使用freemaker 导出word 含多张图片,若无图片则显示文本信息
1、使用的Microsoft Office 2007,添加一个无边框的表格,并插入一张图片,最后另存为
编码utf-8,一开始保存的word xml格式的,图片的base64编码位于文档最后,暂时没有找到解决方法,所以就保存
。
2、用编辑工具打开,找到base64编码替换为ftl标签,红色所示,图片设置长宽(蓝色所示)
<w:p wsp:rsidR="00A50283" wsp:rsidRDefault="00A50283" wsp:rsidP="00D6093A"><w:pPr><w:spacing w:line="20" w:line-rule="exact"/><w:rPr><w:rFonts w:ascii="黑体" w:fareast="黑体" w:h-ansi="华文中宋"/><wx:font wx:val="黑体"/><w:sz w:val="36"/><w:sz-cs w:val="36"/></w:rPr></w:pPr></w:p><w:tbl><w:tblPr><w:tblW w:w="9462" w:type="dxa"/><w:tblLook w:val="04A0"/></w:tblPr><w:tblGrid><w:gridCol w:w="9462"/></w:tblGrid><w:tr wsp:rsidR="00CA63A1" wsp:rsidRPr="00783132" wsp:rsidTr="00783132"><w:trPr><w:trHeight w:val="13715"/></w:trPr><w:tc><w:tcPr><w:tcW w:w="9462" w:type="dxa"/><w:shd w:val="clear" w:color="auto" w:fill="auto"/></w:tcPr><w:p wsp:rsidR="00CA63A1" wsp:rsidRPr="00783132" wsp:rsidRDefault="00CA63A1" wsp:rsidP="00CA63A1"><w:pPr><w:rPr><w:rFonts w:ascii="黑体" w:fareast="黑体" w:h-ansi="华文中宋"/><wx:font wx:val="黑体"/><w:sz w:val="36"/><w:sz-cs w:val="36"/></w:rPr></w:pPr><w:r wsp:rsidRPr="00783132"><w:rPr><w:rFonts w:ascii="黑体" w:fareast="黑体" w:h-ansi="华文中宋"/><wx:font wx:val="黑体"/><w:sz w:val="36"/><w:sz-cs w:val="36"/></w:rPr><w:pict><v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><v:stroke joinstyle="miter"/><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"/><v:f eqn="sum @0 1 0"/><v:f eqn="sum 0 0 @1"/><v:f eqn="prod @2 1 2"/><v:f eqn="prod @3 21600 pixelWidth"/><v:f eqn="prod @3 21600 pixelHeight"/><v:f eqn="sum @0 0 1"/><v:f eqn="prod @6 1 2"/><v:f eqn="prod @7 21600 pixelWidth"/><v:f eqn="sum @8 21600 0"/><v:f eqn="prod @7 21600 pixelHeight"/><v:f eqn="sum @10 21600 0"/></v:formulas><v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/><o:lock v:ext="edit" aspectratio="t"/></v:shapetype><w:binData w:name="${"wordml://0200000"+sl_index+1+".jpg"}" xml:space="preserve">${sl.图片绝对路径}</w:binData><v:shape id="_x0000_i1025" type="#_x0000_t75" style="width:400pt;height:500pt"><v:imagedata src="${"wordml://0200000"+sl_index+1+".jpg"}" o:title=""/></v:shape></w:pict></w:r></w:p></w:tc></w:tr></w:tbl>
3、图片路径转为base64,否则报错
private String changeimg(String path) {
InputStream ins = null;
byte[] data = null;
try {
ins = new FileInputStream(path);
data = new byte[ins.available()];
ins.read(data);
ins.close();
} catch (IOException e) {
e.printStackTrace();
}
BASE64Encoder encoder = new BASE64Encoder();
return encoder.encode(data);
}
4、若无图片则显示文本信息
解决方案用<#if sl.upViewPath == '1'>显示文本<#else>图片显示</#if>
使用freemaker 导出word 含多张图片,若无图片则显示文本信息的更多相关文章
- Java 用Freemarker完美导出word文档(带图片)
Java 用Freemarker完美导出word文档(带图片) 前言 最近在项目中,因客户要求,将页面内容(如合同协议)导出成word,在网上翻了好多,感觉太乱了,不过最后还是较好解决了这个问题. ...
- 【Java】用Freemarker完美导出word文档(带图片)
Java 用Freemarker完美导出word文档(带图片) 前言 最近在项目中,因客户要求,将页面内容(如合同协议)导出成word,在网上翻了好多,感觉太乱了,不过最后还是较好解决了这个问题. ...
- 利用jQuery-Word-Export导出word (含ECharts)
写在前面的话:写博客的初衷是想把自己学到的知识总结下来,在写的过程中,相当于又把知识梳理了一遍.我坚信有输入,有输出,技术才会进步.我一般都会自己写一个小demo,测试没有问题,再进行整理. 在实 ...
- 使用Freemarker导出Word文档(包含图片)代码实现及总结
.personSunflowerP { background: rgba(51, 153, 0, 0.66); border-bottom: 1px solid rgba(0, 102, 0, 1); ...
- Freemaker基于word模板动态导出汇总整理
Freemaker基于word模板动态导出汇总整理 一.使用的jar包: 二.Word模板动态导出的基本思路: 1.首先通过自己在word中创建好需要导出的word文本+表格的模板,模板中需要填写内容 ...
- Freemaker基于word模板动态导出压缩文件汇总整理
Freemaker基于word模板动态导出压缩文件汇总整理 Freemaker基于word模板动态导出单个文件思路和代码详情见连接: https://www.cnblogs.com/lsy-blogs ...
- Java导出Word利用freemarker(含图片)
制作Word模版 建议使用高版本的office做,尽量不要用WPS做,生成xml会出现乱码 编码要统一,推荐UTF-8 建好模板,将模板另存为xml格式,建议原来模板不要删,xml的如果后期打不开,还 ...
- 使用POI导出Word(含表格)的实现方式及操作Word的工具类
.personSunflowerP { background: rgba(51, 153, 0, 0.66); border-bottom: 1px solid rgba(0, 102, 0, 1); ...
- freemarker导出word带图片
导出word带图片 如果你需要在word中添加图片,那你就在第一步制作模板时,加入一张图片占位,然后打开xml文档,可以看到如下的一片base64编码后的代码: <w:binData w:nam ...
随机推荐
- Java .classpath文件Classpath entry org.maven.eclipse.MAVEN2_CLASSPATH_CONTAINER will not be exported or published异常解决办法
在实际用Maven构建Java Web项目开发过程中,有时候会出现上述情况的警告,如果不解决这个警告,就会在启动Web服务器的时候抛出无法加载Maven管理的第三方jar包的异常. 所以,要解决上面的 ...
- 【Unity与23种设计模式】适配器模式(Adapter)
GoF中定义: "将一个类的接口转换成为客户端期待的类接口.适配器模式让原本接口不兼容的类能一起合作." 适配器模式与装饰模式有一定的相似之处 两者都是在着手解决C#不能多继承的问 ...
- 设计模式——中介者模式/调停者模式(C++实现)
#include <iostream> #include <string> using namespace std; class Colleague; class Mediat ...
- linux学习之路--(六)用户及权限详解
计算机资源 用户 用户的容器,用户组 权限 进程时用户访问计算机的代理,操作文件的时候,文件本身有权限,进程本身也有权限 安全上下文(secure context) 权限: r, w, x 文件: r ...
- linux下Tomcat 安装后执行startup.sh,出现– Cannot find …bin/catalina.sh
linux下Tomcat 安装后执行startup.sh,出现– Cannot find …bin/catalina.sh 是因为权限不够,执行以下命令就可以: chmod +x startup.sh ...
- Centos虚拟机克隆模板
Centos6模板 IPTABLES/SELINUX # iptalbes -F # service iptables save 或 # /etc/init.d/iptables stop # chk ...
- 插入排序(Java实现)
直接插入排序 public class InsertionSort { public static <T extends Comparable<? super T>> void ...
- 通向架构师的道路之 Tomcat 性能调优
一.总结前一天的学习 从"第三天"的性能测试一节中,我们得知了决定性能测试的几个重要指标,它们是: 吞吐量 Responsetime Cpuload MemoryUsage 我们也 ...
- 笔记:Maven 仓库和插件配置本机私服
通过配置POM中的配置仓库和插件仓库,只在当前项目生效,而实际应用中,我们希望通过一次配置就能让本机所有的Maven项目都使用自己的Maven私服,这个时候我们需要配置 settings.xml文件, ...
- npm scripts 使用指南
转载自:http://www.ruanyifeng.com/blog/2016/10/npm_scripts.html Node 开发离不开 npm,而脚本功能是 npm 最强大.最常用的功能之一. ...