java中使用String的replace方法替换html模板保存文件

在我们的D盘下有这样一个html模板,现在我们要做的就是解析news.template文件,从数据库中提取数据将数据添加到指定的模板位置上

  news.template

 

接下来使用IO流的InputStream将该文件读取到内存中

复制代码
 1 //读取HTML模板文件new.template
 2     public String readFile(String path) throws IOException{
 3 InputStream is=null;
 4         String result="";
 5         try {
 6             @SuppressWarnings("unused")
 7             int data=0;
 8             byte[] by =new byte[1024];
 9             is = new FileInputStream(path);
10             while((data=is.read(by))!=-1){
11                 //result+=(char)data;
12                 //result=new String(data);
13                 result=new String(by,0,by.length);
14             }
15         } catch (FileNotFoundException e) {
16             System.out.println("未找到new.template文件!");
17             e.printStackTrace();
18         }
19         finally{
20             System.out.println("创建成功!");
21             is.close();
22         }
23         //return result.toString();
24         return result;
25     }
复制代码

 

编写方法toHTml()   替换模板文件,为每条新闻创建一个HTML文件来显示其信息

复制代码
 1 //读取数据库表,获取新闻列表信息(在此不做讲解)
 2 List<News> list = dao.allInfo();
 3 //编写方法  将从数据库中读取到的数据替换掉news.template文件中的占位符"{}"
 4 String template= fileio.readFile("D:\\news.template");
 5         
 6         //替换模板文件,为每条新闻创建一个HTML文件来显示其信息
 7         for (int i = 0; i < list.size(); i++) {
 8             //获取一条新闻信息
 9             News news=list.get(i);
10             //使用该条新闻信息替换对应占位符
11             String replacetr = new String();
12             replacetr=template;
13             //replace(char oldChar, char newChar)返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的
14             replacetr=replacetr.replace("{title}",news.getTitle());
15             replacetr=replacetr.replace("{author}",news.getAuthor());
16             replacetr=replacetr.replace("{createTime}",news.getDatetime().toString());
17             replacetr=replacetr.replace("{content}",news.getContent());
18             //为该条新闻生成HTML文件
19             String filepath="D:\\dbtohtml\\new"+i+".html";
20             
21             fileio.writeFile(filepath,replacetr);
复制代码

 

最终结果如下

 

要实现 JavaHTML 动态模板替换生成 PDF,可以使用以下步骤: 1. 使用 Java 代码读取 HTML 模板文件,并将模板需要动态替换内容标记出来,例如使用 ${} 包含起来。 2. 使用 Java 代码获取需要替换的数据,例如从数据库查询数据或者从其他数据源获取数据。 3. 使用 Java 代码将获取到的数据替换HTML 模板需要替换的位置,即替换 ${} 内容。 4. 使用 Java 代码将替换后的 HTML 保存为 PDF 文件。 下面是一个简单的示例代码,假设有一个名为 template.htmlHTML 模板文件,其有两个动态替换的位置:${name} 和 ${age}。 ```java import java.io.FileOutputStream; import java.io.IOException; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Paths; import java.util.HashMap; import java.util.Map; import com.itextpdf.html2pdf.HtmlConverter; public class PdfGenerator { public static void main(String[] args) throws IOException { // 读取 HTML 模板文件 String html = new String(Files.readAllBytes(Paths.get("template.html")), StandardCharsets.UTF_8); // 构造数据 Map<String, String> data = new HashMap<>(); data.put("name", "张三"); data.put("age", "20"); // 替换 HTML 模板的动态内容 for (Map.Entry<String, String> entry : data.entrySet()) { html = html.replace("${" + entry.getKey() + "}", entry.getValue()); } // 将替换后的 HTML 保存为 PDF 文件 try (FileOutputStream fos = new FileOutputStream("output.pdf")) { HtmlConverter.convertToPdf(html, fos); } } } ``` 在这个示例使用了 iText 库将 HTML 转换为 PDF。需要将 iText 库添加到项目
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值