freemarker 批量生成word报告 (保持word的完成 样式)

思路:

     1.创建word模板  (创建。doc  文件 )

 

2  . 将 模板word 另存为  。xml 文件    (作为freemarker 的 模板 )

3 .将给  xml 作为freemarker 模板   

 freemarker 处理

package com.lz.controller.test;

import freemarker.template.Template;
import freemarker.template.TemplateException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.freemarker.FreeMarkerTemplateUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

/**
 * @author pc-ZD
 */
@Controller
@RequestMapping("template")
public class FreeMarkerTempController {


    @Autowired
    private FreeMarkerConfigurer configurer;


    @RequestMapping(value = "/showTemplate",method = RequestMethod.GET)
    public void toData_attr(HttpServletResponse response){
        try {
            Map<String,Object> model = new HashMap<>();
            model.put("title","报高");
            model.put("data","报高sdadsadsadsadsasdasdadssadadsads");
            model.put("img1","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");

            configurer.getConfiguration().setDefaultEncoding("utf-8");
            Template template = configurer.getConfiguration().getTemplate("test/template/template1.html");
            String text = FreeMarkerTemplateUtils.processTemplateIntoString(template, model);

            response.setCharacterEncoding("utf-8");
            response.setContentType("application/force-download");//应用程序强制下载
            response.setHeader("Content-Disposition", "attachment;filename=aa.doc");
            response.getWriter().print(text);


        } catch (IOException e) {
            e.printStackTrace();
        } catch (TemplateException e) {
            e.printStackTrace();
        }
    }


}

 

4   .替换  freemarker  模板里的值

 

5 .生成模板 并下载

6 .根据模板生成的报告

 

 

此为 原创内容  ,转载请 表明出处  ,谢谢。

  zegoto.cn  欢迎留言

推荐阅读   https://blog.csdn.net/wk1134314305/article/details/74779866  

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JDK是一个开发环境,用于构建应用程序,applet程序,和使用Java编程语言的组成部分。 Java Development Kit(JDK)是Sun Microsystems针对Java开发员的产品。自从Java推出以来,JDK已经成为使用最广泛的Java SDK。JDK 是整个Java的核心,包括了Java运行环境,Java工具和Java基础的类库。JDK是学好Java的第一步。而专门运行在x86平台的Jrocket在服务端运行效率也要比Sun JDK好很多。从SUN的JDK5.0开始,提供了泛型等非常实用的功能,其版本也不断更新,运行效率得到了非常大的提高。 定于2月19日发布的Java SE原来的重要补丁更新 - 2013年2月,但甲骨文决定加快释放该重要补丁更新,因为积极开发“野生”的Java漏洞影响在桌面浏览器,运行时环境(JRE)与该重要补丁更新解决。 更新日志:JDK 7u17 发布,该版本修复了浏览器插件的严重的安全漏洞:CVE-2013-1493,Oracle 强烈建议使用 Java 浏览器插件用户升级。 重要补丁更新是针对多个安全漏洞的补丁集合。为Java SE重要补丁更新还包括非安全修复程序。重要补丁更新是累积性的,每个公告只描述自上一个重要补丁更新和安全警报添加的安全修复。因此,以前的重要补丁更新和安全警报建议应检讨有关以前累积的安全修复程序。 请参考: 重要补丁更新和安全警报的信息,有关Oracle安全性公告。 由于一个成功的攻击所带来的威胁,Oracle强烈建议用户尽快应用CPU修复程序。该重要补丁更新包含50个新安全修复程序的Java SE的产品。 支持受影响的产品 该重要补丁更新解决的安全漏洞影响以下按类别列出的产品。请点击可用补丁列或可用补丁表中的链接来访问这些补丁的文档。
好的,您想了解关于使用iText和FreeMarker生成HTML并将其转换为Word文档的内容。首先,您需要了解几个概念: 1. iText是一个用于生成PDF文档的Java库,但它也可以用于生成其他类型的文档,例如Word文档。 2. FreeMarker是一个用于生成动态内容的Java模板引擎,它可以将数据模型与模板文件结合使用,生成静态文本文件。 接下来,您可以按照以下步骤来实现将HTML转换为Word文档: 1. 创建一个FreeMarker模板文件,其中包含您要生成的HTML内容,并将其保存为.ftl文件。 2. 在Java代码中,使用FreeMarker来读取.ftl文件并将数据模型填充到模板中,生成HTML字符串。 3. 使用iText将HTML字符串转换为Word文档。您可以使用iText的XMLWorkerHelper类来实现此功能。 以下是一个简单的示例代码,用于将HTML字符串转换为Word文档: ``` // Step 1: Load the FreeMarker template Configuration cfg = new Configuration(Configuration.VERSION_2_3_28); cfg.setDirectoryForTemplateLoading(new File("templates")); Template template = cfg.getTemplate("my_template.ftl"); // Step 2: Generate HTML string from the template and data model Map<String, Object> data = new HashMap<>(); data.put("name", "John Doe"); StringWriter out = new StringWriter(); template.process(data, out); String html = out.getBuffer().toString(); // Step 3: Convert HTML to Word document using iText ByteArrayOutputStream baos = new ByteArrayOutputStream(); Document document = new Document(); PdfWriter writer = PdfWriter.getInstance(document, baos); document.open(); XMLWorkerHelper.getInstance().parseXHtml(writer, document, new ByteArrayInputStream(html.getBytes())); document.close(); // Save the Word document to file FileOutputStream fos = new FileOutputStream("output.docx"); fos.write(baos.toByteArray()); fos.close(); ``` 请注意,此示例代码仅用于说明概念,并且可能需要进行修改以适合您的特定需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值