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();
|
|
}
|
|
|
|
|
|
}
|