package com.ruoyi.web.controller.api; import com.ruoyi.common.core.domain.R; import com.ruoyi.web.controller.tool.PdfUtils; import com.ruoyi.web.controller.tool.WordUtil; import freemarker.cache.ClassTemplateLoader; import freemarker.template.Configuration; import freemarker.template.Template; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.*; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.time.LocalDate; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @Slf4j @RestController @RequestMapping("/test") public class TestController { @Resource private WordUtil wordUtil; /** * 基于模板生成 Word 文档(生成动态列表) * * @param response response */ @ApiOperation(value = "列表",tags = {"TTTT"}) @GetMapping("/generate_dynamic_word") public void generateDynamicWord(HttpServletResponse response) throws IOException { // 定义文件路径 String filePath = "E:\\qiyeweixin\\WXWork\\1688855207501340\\Cache\\File\\2024-09\\pdf\\专业技术工作总结.pdf"; // 获取文件对象 File file = new File(filePath); // 设置响应内容类型 response.setContentType("application/pdf"); // 设置响应字符编码为 UTF-8 response.setCharacterEncoding("UTF-8"); // 设置响应头,指定文档将以附件的形式下载,并定义文件名 response.setHeader("Content-Disposition", "attachment; filename=" + "1.pdf" ); // 创建输入流读取文件 FileInputStream fileInputStream = new FileInputStream(file); // 获取响应输出流 OutputStream responseOutputStream = response.getOutputStream(); // 缓冲区大小设为 10KB byte[] buffer = new byte[10240]; int bytesRead; // 读取文件内容并写入响应输出流 while ((bytesRead = fileInputStream.read(buffer)) != -1) { responseOutputStream.write(buffer, 0, bytesRead); } // 关闭输入流和输出流 fileInputStream.close(); responseOutputStream.close(); } }