`
javaso
  • 浏览: 53196 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

巧用freemarker生成vcard文件

阅读更多

      某天接到老大任务,加通讯录添加一个导出vcard 文件功能.当时就蒙了一下:什么来的?怎么没听说过.于是打开百度,GOOGLE搜了一下.哦原来子.借助万能的GOOGLE 还找到了VCARD4Jcardme 这两个开源类库操作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文件这样就生成了!

分享到:
评论
1 楼 insomniatt 2010-11-18  
求代码,我也接到了这任务。。。不过还要导入到出到sim卡。。。

相关推荐

    Java中使用 FreeMarker 生成pdf盖章合同文件

    本篇文章将深入探讨如何在Java中使用FreeMarker生成带有盖章的PDF合同文件。 首先,让我们了解FreeMarker的基本概念。FreeMarker是一个基于模板的语言,它与Java代码分离,允许开发者用简单的模板语法来表示数据。...

    FreeMarker生成word文件

    以下是关于如何使用FreeMarker生成Word文件的一些关键知识点: 1. **FreeMarker模板语言**:FreeMarker使用一种简单的模板语言,允许开发者通过定义变量和控制结构(如循环和条件语句)来动态地插入数据。在模板中...

    freemarker生成xml示例

    在Java中,Freemarker与数据模型结合,通过模板文件生成输出。对于XML生成,首先我们需要准备以下几个部分: 1. **数据模型(Model)**:这是你要生成XML所依赖的数据,可以是Java对象、Map或者其他集合类型。例如...

    利用FreeMarker生成word文件例子

    在Java开发中,利用FreeMarker生成Word文件可以极大地提高效率,尤其在需要批量生成或者自定义模板的情况下。以下是对这个主题的详细阐述: ### FreeMarker简介 FreeMarker是一个开源的、基于模板的Java库,它将...

    freemarker根据模版生成文件使用例子

    本文将详细解析一个具体的使用案例:如何利用Freemarker根据模板生成文件,特别是Java环境下生成Hibernate的配置文件(*.hbm.xml)。此案例不仅展示了Freemarker的基本用法,还涉及到了自定义类、接口以及模板加载...

    使用FreeMarker生成Html静态文件

    5. **静态文件生成**: 渲染后的HTML内容可以写入到文件系统,生成静态HTML文件。这样,Web服务器可以直接返回这些静态文件,提高网站的访问速度。 6. **优化与调试**: FreeMarker支持缓存机制,可以提高模板的加载...

    java使用freemarker生成复杂的word文档

    Java中的Freemarker是一个强大的模板引擎,常用于生成动态HTML、XML或文本文件,而这里我们讨论的是如何利用Freemarker生成复杂的Word文档。在Java应用中,有时我们需要生成结构化且内容丰富的Word文档,例如报告、...

    通过freemarker模板 生成PDF

    `PDFTool`可能包含使用Freemarker的方法,如`processTemplate()`,此方法接受模板文件路径、数据模型和目标PDF输出路径作为参数。`FileController`则可能是处理HTTP请求的控制器,它接收一个HTML URL,并调用`PDF...

    freemarker生成复杂excel,带换行

    在Java开发中,利用Freemarker生成Excel文件能够极大地提高效率,特别是处理复杂表格时,其灵活性尤为突出。本示例重点在于如何通过Freemarker实现Excel单元格内的换行功能。 首先,我们需要理解Freemarker的基本...

    Java freemarker生成word文件

    Java FreeMarker 是一个强大的模板引擎,它允许程序员使用简单的模板语言来动态生成各种类型的文档,包括Word文件。在Java开发中,如果你需要自动生成报告、合同或者任何基于特定数据的Word文档,FreeMarker是一个...

    使用FreeMarker生成java代码

    最后,使用FreeMarker的`Template`类加载模板文件,并结合数据模型生成Java代码: ```java Configuration cfg = new Configuration(Configuration.VERSION_2_3_30); cfg.setDirectoryForTemplateLoading(new File(...

    springboot中使用freemarker动态生成word文档,以及使用POI导出自定义格式Excel

    Springboot项目中: 1. 使用Apache POI 3.9 自定义样式导出Excel文件...2. 使用freemarker动态生成word .doc文档(带图片Word以及复杂格式word) 详细说明见个人博客及 github: https://github.com/DuebassLei/excel-poi

    使用freemarker生成word文档,源代码+jar包+说明文档及注意事项

    * @param filePath 文件生成的目标路径,例如:D:/wordFile/ * @param fileName 生成的文件名称,例如:test.doc */ @SuppressWarnings("unchecked") public static void createWord(Map dataMap,String ...

    Freemarker模板生成pdf+java

    Freemarker模板生成pdf+javaFreemarker模板生成pdf+javaFreemarker模板生成pdf+javaFreemarker模板生成pdf+javaFreemarker模板生成pdf+java

    如何使用Freemarker生成java代码

    Freemarker是一个强大的模板引擎,常用于动态生成HTML、XML或其他文本格式的文件,比如在Java开发中,它被广泛应用于生成代码、邮件模板、报表等。本篇将详细介绍如何利用Freemarker来生成Java代码。 一、...

    java利用freemarker生成word.pdf

    Java 利用 Freemarker 生成 Word.pdf,这个标题告诉我们,我们将使用 Java 语言和 Freemarker 库来生成 Word 文档,并将其导出为 PDF 文件。 描述解释 在描述中,我们可以看到,整个过程可以分为三步:首先,我们...

    freemarker 生成word,支持一个单元格生成多张图片

    最后,使用FreeMarker的`Template.process()`方法生成处理后的文本,然后用Apache POI将这个文本写入Word文档的相应位置,完成图片的插入。记得关闭所有打开的流和资源,以防止内存泄漏。 总的来说,通过FreeMarker...

    freemarker导出doc及docx

    你需要在这里定义数据模型,加载Freemarker模板,设置输出文件路径,然后调用Freemarker的API来生成文档。具体步骤如下: - 创建一个`Configuration`对象,配置Freemarker的模板目录。 - 加载Freemarker模板文件,...

    freemarker生成word文件,后端java代码

    freemarker生成word文件 1.模板制造 先用word编辑好格式样式。 另存为xml。 直接将后缀改为ftl格式,模板就生成了。 2.freemarker文件中的运算判断方式,可自行查询百度

Global site tag (gtag.js) - Google Analytics