谁知道 用freemarker 导出word时,如何使导出word的格式,默认为doc格式
首先,通过xml模板可以将基本上所有的格式都事先锁定,包括页码和分页,只要你事先预设好就能够通过freemarker实现生成,接下来就是我这个问题了,目录怎么解决,下面是解决思路:1:目录的内容可以根据之前其他的内容一样解决,通过XML模板预先设置好,2:目录的页码已经研究过是不能直接通过xml模板实现动态对应了(至少我没搞定0.0)3:由于不能够一步到位,我采取了在模板中预留了一页空白页,只留了抬头的目录两个字,然后通过查询目录二字进行目录的生成,这个功能也是我刚刚折腾出来的0.0目前还没测试能不能用模板生成目录后再更新目录0.0,不过想想可以直接生成目录应该就不用这么麻烦了,至于word生成后的修改0.0我觉得还是以后再说吧..整体来说应该还算完美解决了,代码我就不在这贴出来了~虽然中间折腾了半天走了半天弯路~讲道理还是用的jacob来实现的。。
freemark在linux上生成word以后转pdf直接另存为即可。
工具:word2013
步骤:
1、打开word2013,点击文件,选择另存为。选择其他格式。
2、在另存为界面,选择格式pdf,点击保存即可完成。
注:word2010以下版本另存为没有pdf格式,需下载插件后,才能直接另存为pdf格式。2010以上的版本才可以直接另存为。
第一步要加入Freemarker.jar包。
Servlet代码如下:在outChairDoc.ftl放在包cn.skyclass.jiaowu.freemarker.template下
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
configuration = new Configuration();
configuration.setDefaultEncoding("utf-8");
try {
createDoc(response);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void createDoc(HttpServletResponse response) throws Exception {
// 要填入模本的数据文件
Map dataMap = new HashMap();
dataMap.put("docTitle", "fdfdfdfdfdfdf用户信息");
List<ChairInfo> list = new ArrayList<ChairInfo>();
ChairInfo chairInfo = new ChairInfo();
chairInfo.setChairTitle("dfdfd");
chairInfo.setTeacherName("tea");
chairInfo.setStartTime(new Date());
chairInfo.setPlace("dfdfd");
list.add(chairInfo);
dataMap.put("chairInfoList", list);
// 设置模本装置方法和路径,FreeMarker支持多种模板装载方法。可以重servlet,classpath,数据库装载,
// 这里我们的模板是放在com.havenliu.document.template包下面
configuration.setClassForTemplateLoading(this.getClass(),
"/cn/skyclass/jiaowu/freemarker/template");
Template t = null;
try {
// test.ftl为要装载的模板
t = configuration.getTemplate("outChairDoc.ftl");
t.setEncoding("utf-8");
} catch (IOException e) {
e.printStackTrace();
}
// 输出文档路径及名称
String fileName="讲座列表.doc";
response.setContentType("application/msword");
response.addHeader("Content-Disposition", "attachment; filename=" + java.net.URLEncoder.encode(fileName, "UTF-8"));//可防止导出的文件乱码
response.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
t.process(dataMap, out);
out.close();
}
谁知道 用freemarker 导出word时,如何使导出word的格式,默认为doc格式...
将要导出的Word另存为xml格式的文件,打开xml 在其中添加freemarker标签,然后另存为outChairDoc.ftl文件.第一步要加入Freemarker.jar包。Servlet代码如下:在outChairDoc.ftl放在包cn.skyclass.jiaowu.freemarker.template下 public void doGet(HttpServletRequest request, HttpServletResponse response)throws Se...
freemarker导出word文档对图片拉伸或拉长的处理
1. **调整图片单位**:- 将图片单位从厘米调整为像素,或计算出对应的像素值,以适应Word文档的像素单位。2. **Word文档转换为XML**:- 保存Word文档为XML格式,便于查看和修改图片属性,特别是宽度和高度。3. **计算实际宽度与高度**:- 使用预定义的系数(例如:实际width=cX*100\/914400,实际...
SpringBoot 集成 FreeMarker 导出 Word 模板文件
首先,创建Word模板文件,例如:tableService.doc,如图所示。然后,将这个模板转换为XML格式,这里使用的是WPS软件进行另存。接着,将XML文件转换为FTL(FreeMarker模板语言)文件。在FTL文件中,对关键字进行调整,使用${}语法,如${cswz},这是为了与输入参数或输出参数的字段名对应。在IDEA中,推荐使...
freemarker导出word文档无法读取内容如何解决?
2.3 freemarker渲染在Freemarker模板中,使用`${api.xxx}`语法进行变量引用,``标签用于迭代渲染列表集合。通过构造API接口列表数据并将其传递给模板,即可实现数据的动态渲染。2.4 导出word将数据填充到模板后,通过Freemarker引擎执行渲染,最终生成Word文档。如果需要,可以将生成的Word文件导出到特定的服务...
java freemarker将多个word页导出到一个word文件里
你的意思是以一个背景图为主要模板·后面的2 3 4 5...页都要用这个模板 是吧? 那简单·word菜单里有个格式·在格式里有背景-水印-出来一个对话框·图片水印·吧你要的背景放进去 ·就可以了·这样后面的页数都会是这个背景··如果你是插入图片的那个方法··估计你每个页面都要手动去设置了...
【FreeMarker】Java模板引擎——开箱以及使用
FreeMarker是一个模板引擎,专门用于Java类库,常用于处理大文本内容,以避免频繁查询数据库导致的性能下降。引入模板引擎生成静态网页资源,可以提高系统的整体性能。配置环境时,需要在pom文件中加入相应的依赖,同时配置application.yml文件。接着,创建模板文件。整个环境配置流程较为简洁,易于上手。开发过程...
如何解决用freemarker导出的excel文档是xml格式
生产制造 其他 日报 日报精选 日报广场 用户 认证用户 视频作者 日报作者 知道团队 认证团队 合伙人 企业 媒体 政府 其他组织 商城 手机答题 我的 如何解决用freemarker导出的excel文档是xml格式 搜索资料 我来答 分享 新浪微博 QQ空间 举报 忽略 提交回答 匿名 回答自动保存中为...
...打开导出的文件时报错“文件错误,数据可能丢失”
1.你的excel模版本身有问题,可以尝试新建一个模版。2.你的excel使用了一些POI不支持的函数。解决办法:另存是由excel重写了完整的文件,可以解决问题。关闭文件例子:FileOutputStream os = new FileOutputStream("workbook.xls");wb.write(os);os.close();在保护状态下execl的格式有可能正在被使用,...
freemarker导出word时报出异常求帮助
应该是没有成功生成,内部代码里还包含了word无法识别的代码块,所以无法打开,你可以用记事本查看源代码,freenarker转换的word源代码都是xml格式
Web工程中使用Freemarker导出Word出错,XML文件中使用<#list abc as b...
<#list><\/#list>这个freemarker模版的标签吧.你确定放到xml中能使用?