某天接到老大任务,加通讯录添加一个导出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文件这样就生成了!
分享到:
相关推荐
本篇文章将深入探讨如何在Java中使用FreeMarker生成带有盖章的PDF合同文件。 首先,让我们了解FreeMarker的基本概念。FreeMarker是一个基于模板的语言,它与Java代码分离,允许开发者用简单的模板语法来表示数据。...
以下是关于如何使用FreeMarker生成Word文件的一些关键知识点: 1. **FreeMarker模板语言**:FreeMarker使用一种简单的模板语言,允许开发者通过定义变量和控制结构(如循环和条件语句)来动态地插入数据。在模板中...
在Java中,Freemarker与数据模型结合,通过模板文件生成输出。对于XML生成,首先我们需要准备以下几个部分: 1. **数据模型(Model)**:这是你要生成XML所依赖的数据,可以是Java对象、Map或者其他集合类型。例如...
在Java开发中,利用FreeMarker生成Word文件可以极大地提高效率,尤其在需要批量生成或者自定义模板的情况下。以下是对这个主题的详细阐述: ### FreeMarker简介 FreeMarker是一个开源的、基于模板的Java库,它将...
本文将详细解析一个具体的使用案例:如何利用Freemarker根据模板生成文件,特别是Java环境下生成Hibernate的配置文件(*.hbm.xml)。此案例不仅展示了Freemarker的基本用法,还涉及到了自定义类、接口以及模板加载...
5. **静态文件生成**: 渲染后的HTML内容可以写入到文件系统,生成静态HTML文件。这样,Web服务器可以直接返回这些静态文件,提高网站的访问速度。 6. **优化与调试**: FreeMarker支持缓存机制,可以提高模板的加载...
Java中的Freemarker是一个强大的模板引擎,常用于生成动态HTML、XML或文本文件,而这里我们讨论的是如何利用Freemarker生成复杂的Word文档。在Java应用中,有时我们需要生成结构化且内容丰富的Word文档,例如报告、...
`PDFTool`可能包含使用Freemarker的方法,如`processTemplate()`,此方法接受模板文件路径、数据模型和目标PDF输出路径作为参数。`FileController`则可能是处理HTTP请求的控制器,它接收一个HTML URL,并调用`PDF...
在Java开发中,利用Freemarker生成Excel文件能够极大地提高效率,特别是处理复杂表格时,其灵活性尤为突出。本示例重点在于如何通过Freemarker实现Excel单元格内的换行功能。 首先,我们需要理解Freemarker的基本...
Java FreeMarker 是一个强大的模板引擎,它允许程序员使用简单的模板语言来动态生成各种类型的文档,包括Word文件。在Java开发中,如果你需要自动生成报告、合同或者任何基于特定数据的Word文档,FreeMarker是一个...
最后,使用FreeMarker的`Template`类加载模板文件,并结合数据模型生成Java代码: ```java Configuration cfg = new Configuration(Configuration.VERSION_2_3_30); cfg.setDirectoryForTemplateLoading(new File(...
Springboot项目中: 1. 使用Apache POI 3.9 自定义样式导出Excel文件...2. 使用freemarker动态生成word .doc文档(带图片Word以及复杂格式word) 详细说明见个人博客及 github: https://github.com/DuebassLei/excel-poi
* @param filePath 文件生成的目标路径,例如:D:/wordFile/ * @param fileName 生成的文件名称,例如:test.doc */ @SuppressWarnings("unchecked") public static void createWord(Map dataMap,String ...
Freemarker模板生成pdf+javaFreemarker模板生成pdf+javaFreemarker模板生成pdf+javaFreemarker模板生成pdf+javaFreemarker模板生成pdf+java
Freemarker是一个强大的模板引擎,常用于动态生成HTML、XML或其他文本格式的文件,比如在Java开发中,它被广泛应用于生成代码、邮件模板、报表等。本篇将详细介绍如何利用Freemarker来生成Java代码。 一、...
Java 利用 Freemarker 生成 Word.pdf,这个标题告诉我们,我们将使用 Java 语言和 Freemarker 库来生成 Word 文档,并将其导出为 PDF 文件。 描述解释 在描述中,我们可以看到,整个过程可以分为三步:首先,我们...
最后,使用FreeMarker的`Template.process()`方法生成处理后的文本,然后用Apache POI将这个文本写入Word文档的相应位置,完成图片的插入。记得关闭所有打开的流和资源,以防止内存泄漏。 总的来说,通过FreeMarker...
你需要在这里定义数据模型,加载Freemarker模板,设置输出文件路径,然后调用Freemarker的API来生成文档。具体步骤如下: - 创建一个`Configuration`对象,配置Freemarker的模板目录。 - 加载Freemarker模板文件,...
freemarker生成word文件 1.模板制造 先用word编辑好格式样式。 另存为xml。 直接将后缀改为ftl格式,模板就生成了。 2.freemarker文件中的运算判断方式,可自行查询百度