某天接到老大任务,加通讯录添加一个导出vcard
文件功能.当时就蒙了一下:什么来的?怎么没听说过.于是打开百度,GOOGLE搜了一下.哦原来子.借助万能的GOOGLE 还找到了VCARD4J
和cardme
这两个开源类库操作vcard。稍微看了一下文档,有点迷糊,E文不好,没办法,后来想想,这vcard文件看起来不算复杂。何不借助模板引擎来自己生成呢?说干就干。
在window通讯录里新建了一个联系人,反自己放进去了作小白了。
导出一个人VCARD文件,再到google gmail上导个人出来。 对比看了一下格式。winxp 通讯录导出来的是2.0的。gmail的是3.0 两种版本规范具体有多大差别有多大没仔细去看E文。
经过几小时折腾,发现winxp里通讯录用UTF-8是会出现乱码的。GMAILGBK还是UTF-8都没问题。在IPHONE(老大帮忙测试了,我这穷人可没这玩意
,UTF-8才行,GBK有问题)。最后就用UTF-8的编码来生成文件。
Freemarker相信很多人用这东西生成静态化网页。用来生成vcard文件原理一样。只不过模板变了。
public static void createVCardFile(String templatePath, String fileName,
OutputStream ops, Page<UserJobBean> page, String encode)
throws Exception {
Configuration cfg = new Configuration();
cfg.setClassicCompatible(true);
cfg.setObjectWrapper(new DefaultObjectWrapper());
cfg.setDefaultEncoding(encode);
cfg.setOutputEncoding(encode);
cfg.setDirectoryForTemplateLoading(new File(templatePath));
Template template = cfg.getTemplate(fileName); //获取模板
Map map = new HashMap();
map.put("page", page);
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(ops,
encode));
template.process(map, out);
if (out != null) {
out.close();
}
if (ops != null) {
ops.close();
}
// ops.write(bytes);
}
//若是 是web中点击下载记得
response.setHeader("Content-Disposition", "attachment; filename=\"" + filename + "\"");
<#list page.result as job >
BEGIN:VCARD
VERSION:3.0
N:${job.user.lastName};${job.user.middleName} ${job.user.firstName} | ${job.user.chineseName};;
FN:${job.user.middleName} ${job.user.firstName}
NICKNAME:${job.user.nickName}
TITLE:${job.title}
ORG:${job.team.department.businessUnit.businessUnit};${job.team.department.department}
TEL;TYPE=CELL:${job.user.mobile}
TEL;TYPE=WORK:${job.user.extension}
TEL;TYPE=WORK:${job.user.directNumber}
EMAIL;TYPE=INTERNET;TYPE=WORK:${job.user.email}
END:VCARD
</#list>
//打完收工,vcar文件这样就生成了!
分享到:
相关推荐
给初学者一个简单的利用freemarker生成xml文件的例子
1.html模板+model数据,通过freemarker进行渲染,便于维护和修改 2.渲染后的html流,可通过Flying Saucer组件生成pdf文件流,或者生成pdf后再转成jpg文件流
利用FreeMarker生成word文件例子
freemarker根据模版生成文件使用例子
FreeMarker生成word,比较简单
Java freemarker生成word文件的例子
使用freemarker生成复杂的word文档,生成的文档支持office查看,但是使用国产中标普华貌似有问题,office、wps没有问题。
Freemarker模板生成pdf+javaFreemarker模板生成pdf+javaFreemarker模板生成pdf+javaFreemarker模板生成pdf+javaFreemarker模板生成pdf+java
freemarker 生成word,支持一个单元格生成多张图片
通过程序生成PDF文件, wkhtmltox-0.12.3.2_msvc2013-win64.exe html-url
freemarker生成word文件 1.模板制造 先用word编辑好格式样式。 另存为xml。 直接将后缀改为ftl格式,模板就生成了。 2.freemarker文件中的运算判断方式,可自行查询百度
解决用freemarker生成word时如何插入多张图片
Springboot项目中: 1. 使用Apache POI 3.9 自定义样式导出Excel文件...2. 使用freemarker动态生成word .doc文档(带图片Word以及复杂格式word) 详细说明见个人博客及 github: https://github.com/DuebassLei/excel-poi
NULL 博文链接:https://goby2008.iteye.com/blog/627076
freemarker根据模板ftl生成word,pdf格式转word,pdf指定位置插入图片
springboot整合freemarker生成静态html的demo 主要讲解了通过模板生成html和通过字符串生成html
用freemarker 来导出Excel 会简单很多。并且可以导出各种复杂表格,本示例带单元格内换行功能,项目中亲测可以使用,欢迎大家下载使用!
freeMarker生成html实用例子
SpringBoot+JPA+Freemarker 生成动态SQL,通过Test下的 junit Test运行代码
freemarker html生成pdf 通过freemarker 和html模板生成对应的pdf或者图片 参考使用,欢迎下载