springboot使用了wold模板导出pdf乱码
时间: 2024-01-27 10:04:33 浏览: 119
在使用Thymeleaf模板引擎导出PDF文件时,可能会出现中文乱码的情况。这是因为默认情况下,Thymeleaf模板引擎使用的是ISO-8859-1编码,而PDF文件使用的是UTF-8编码。
为了解决这个问题,可以在Spring Boot项目的application.properties文件中添加以下配置:
```
spring.thymeleaf.encoding=UTF-8
```
这样就可以将Thymeleaf模板引擎的编码设置为UTF-8,解决中文乱码的问题。同时,也需要在导出PDF的代码中设置编码为UTF-8,例如:
```
ITextRenderer renderer = new ITextRenderer();
renderer.getFontResolver().addFont("fonts/simsun.ttc", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
String content = templateEngine.process("template.html", context);
renderer.setDocumentFromString(content);
renderer.layout();
response.setContentType("application/pdf;charset=UTF-8");
response.setHeader("Content-Disposition", "attachment;filename=" + filename);
OutputStream outputStream = response.getOutputStream();
renderer.createPDF(outputStream);
```
其中,添加的第一行代码是设置字体解析器,可以解决中文字符显示不全的问题。第四行代码是设置响应头的Content-Type和字符编码,确保输出的PDF文件编码为UTF-8。
阅读全文