根据模板生成html文件并下载

该模块用于相关内容导出功能,先读取模板文件,再替换模板中的内容,最后直接以流的形式提供下载。主要代码如下:

String templateContent = "";
// 读取模板文件
FileInputStream fileinputstream = new FileInputStream(filePath);
InputStreamReader isr = new InputStreamReader(fileinputstream, "utf-8");
BufferedReader br = new BufferedReader(isr);
String line = null;
while ((line = br.readLine()) != null) {
     templateContent += line;
}
br.close();
// 替换
templateContent = templateContent.replaceAll("###title###", 【替换的内容】);templateContent = templateContent.replaceAll("###htmlContent###", 【替换的内容】);
// 当前时间
String time = new SimpleDateFormat("yyyyMMdd").format(Calendar.getInstance().getTime());
// 生成文件的名称
String filename = String.valueOf(【文件名】 + "_" + time + "_" + (int) (Math.random() * (9999 - 1000 + 1) + 1000)) + ".html";
// 清空response
response.reset();
// 设置文件MIME类型
response.setContentType("text/html; charset=utf-8");
// 设置Content-Disposition
response.addHeader("Content-Disposition", "attachment;filename=" + new String(filename.getBytes("gb2312"), "ISO8859-1"));
// 读取文件
InputStream in = new ByteArrayInputStream(templateContent.getBytes("utf-8"));
OutputStream out = response.getOutputStream();
// 写文件
int b;
while ((b = in.read()) != -1) {
    out.write(b);
}
in.close();
out.close();

模板代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>###title###</title>
    <style type="text/css">
        * { margin: 0; padding: 0; }
        body { overflow: auto; font-family: "微软雅黑"; font-size:14px; color:#444;}
    </style>
</head>
<body>

###htmlContent###

</body>
</html>
时间: 2024-10-14 02:26:00

根据模板生成html文件并下载的相关文章

java根据模板生成word文件

原文:java根据模板生成word文件 源代码下载地址:http://www.zuidaima.com/share/1550463664884736.htm AVA生成word模板程序步骤 1. 将freemarker-2.3.13.jar复制到项目\WEB-INF\lib目录下 2. 编辑模板文件 (1) 将DOC文件另存为xml文件,将xml文件在eclipse环境下打开,右键选"源"→"格式".此处注意xml文件属性是UTF-8. (2) 将xml文件中需要替

利用html模板生成Word文件(服务器端不需要安装Word)

利用html模板生成Word文件(服务器端不需要安装Word) 由于管理的原因,不能在服务器上安装Office相关组件,所以只能采用客户端读取Html模板,后台对模板中标记的字段数据替换并返回给客户端的方法来实现,经过测试这种方法也是一种不错的选择! 首先自己写一个html网页模板,代码如下: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>

使用word的xml模板生成.doc文件

一.编辑模板 替换地方以变量标记如"案件编号"可写成{caseNo} template.xml 二.准备数据 以HashMap封装数据,原理是替换模板中的变量 三.替换操作 选择输出位置:writePath WordUtil.printWordbyXMLWithOutputPath(templateFile, writePath, filename, dataMap); /** * 打印word文档(传入参数需要传入输出文件的保存路径的) * @param templateFile *

PHP 生成.csv 文件并下载到浏览器

最近做了一个项目需要把订单的信息显示出来,并且能够把相关信息放到一个.csv 文件中,下载到浏览器.首先我要说明的是.csv 文件,PHP 有专门的函数去解析该类型的文件,相关函数大家可以去官网查看.注意.csv 文件内容的编码格式是gbk格式的,所以有必要对字符格式进行转码.文件的样式如下. 一.首先要定义header 头 // 输出Excel文件头,可把user.csv换成你要的文件名 header ( 'Content-Type: application/vnd.ms-excel' );

Java生成Txt文件及下载

package com.saicfc.pmpf.internal.manage.utils; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import com.saicfc.pmpf.common.enums.ChannelCo

freemarker根据模板生成word文件实现导出功能

一.准备工作 1.创建一个03的word文档,动态的数据用占位符标志占位(如testname).然后另存为word2003的xml文件. 2.格式化xml文件,占位符的位置用${testname}代替,若有多行格式相同数据等,用List循环. 注意:不要用Eclipse工具去格式化xml文件(会导致导出的word文件不能用office软件打开,但是PDF能打开,估计是pdf的容错率高于office),推荐使用firstObject工具格式化xml文件. 3.将xml文件(也可以改成ftl格式)存

itextsharp利用模板生成pdf文件笔记

iTextSharp是一款开源的PDF操作类库,使用它可以快速的创建PDF文件. 中文参考网站:http://hardrock.cnblogs.com/ http://pdfhome.hope.com.cn/Article.aspx?CID=bf51a5b6-78a5-4fa3-9310-16e04aee8c78&AID=f5fe52dd-8419-4baa-ab1c-ea3f26952132 英文参考网站:http://itext.ugent.be/library/ ·  技术文章(http:

java生成Ecxel文件及下载(公用)

/** * 上海汽车集团财务有限责任公司 * Copyright (c) 1994-2014 All Rights Reserved. */ package com.saicfc.pmpf.internal.manage.utils; import java.io.File; import java.io.IOException; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; i

C# 生成pdf文件客户端下载

itextsharp.dll 下载:http://sourceforge.net/projects/itextsharp/ 程序需引用:itextsharp.dll,itextsharp.pdfa.dll,PresentationFramework.dll 本人使用的是一般处理程序来写的,废话不多说代码才是硬道理,使用插件定位图片,表格是使用html转的pdf 1 public void ProcessRequest(HttpContext context) 2 { 3 context.Resp