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

Posted 技术宅home

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了根据模板生成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>

以上是关于根据模板生成html文件并下载的主要内容,如果未能解决你的问题,请参考以下文章

根据word模板(contract_templet.tld)生成并下载word合同及根据wordHTML模板(contract_templetHTML.tld)预览合同内容

使用vscode,新建.vue文件,tab自动生成vue代码模板

vscode vue 模板文件生成

使用vscode,新建.vue文件,tab(enter)自动生成vue代码模板

vscode代码片段生成vue模板

vscode 用户代码片段 vue初始化模板 Snippet #新加入开头注释 自动生成文件名 开发日期时间等内容