当前位置: 首页 > wzjs >正文

做公司网站需要多少钱企业网站有哪些

做公司网站需要多少钱,企业网站有哪些,政府网站建设集约化服务器,做家乡网站在实际开发中,我们经常需要将数据导出为PDF格式,以便于打印、分享或存档。SpringBoot提供了多种方式来实现PDF导出功能,下面我们将介绍其中的一些。 HTML 模板转 PDF(推荐) 通过模板引擎(如 Thymeleaf 或…

在实际开发中,我们经常需要将数据导出为PDF格式,以便于打印、分享或存档。SpringBoot提供了多种方式来实现PDF导出功能,下面我们将介绍其中的一些。

HTML 模板转 PDF(推荐)

通过模板引擎(如 Thymeleaf 或 Freemarker)生成 HTML,再转换为 PDF。

1.首先,需要在pom.xml文件中添加依赖项:
<!-- Thymeleaf 模板引擎 --><dependency><groupId>org.thymeleaf</groupId><artifactId>thymeleaf</artifactId><version>3.0.12.RELEASE</version> <!-- 请检查并使用最新版本 --></dependency><dependency><groupId>org.xhtmlrenderer</groupId><artifactId>flying-saucer-pdf-itext5</artifactId><version>9.1.20</version> <!-- 请检查并使用最新版本 --></dependency>
2.接下来,我们需要把模板文件pdfTemplate.html放到资产文件夹中 src/main/resources/templates
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"/><style>body { font-family: SimSun; } /* 解决中文乱码 */</style></head>
<body>
<div><span th:text="'名称:' + ${title}" style="display: block;"></span>
</div></body>
</html>
3.还需要把对应的字体放到resource中,这样防止中文在pdf中不显示,放在该路径下 src/main/resources/fonts/simsun.ttc

4.接下来,创建一个Controller类,用于生成PDF文件:
package com.onejson.ojmall.controller;import org.thymeleaf.TemplateEngine;
import com.itextpdf.text.pdf.BaseFont;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.thymeleaf.context.Context;
import org.xhtmlrenderer.pdf.ITextRenderer;import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.charset.StandardCharsets;@RestController
@RequestMapping("/pdf")
@Api(tags = "pdf管理")
public class PdfController {/*** 通过html模板生成pdf* @param response* @throws Exception*/@GetMapping("/export/html2pdf")public void export(HttpServletResponse response) throws Exception {// 设置响应头response.setContentType("application/pdf");response.setHeader("Content-Disposition", "attachment; filename=report.pdf");// 加载HTML模板InputStream templateInputStream = this.getClass().getResourceAsStream("/templates/pdfTemplate.html");assert templateInputStream != null;byte[] bytes = new byte[templateInputStream.available()];templateInputStream.read(bytes);String htmlContent = new String(bytes, StandardCharsets.UTF_8);// 准备上下文数据Context context = new Context();context.setVariable("title", "测试");// 渲染HTMLTemplateEngine templateEngine = new TemplateEngine();String processedHtml = templateEngine.process(htmlContent, context);// 将HTML转换为PDFITextRenderer renderer = new ITextRenderer();renderer.setDocumentFromString(processedHtml);// 字段导入很重要,不然中文不显示renderer.getFontResolver().addFont("/fonts/simsun.ttc", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);renderer.layout();// 输出PDFtry (OutputStream outputStream = response.getOutputStream()) {renderer.createPDF(outputStream);}}
}

这里我们设置了一个 title的变量来测试内容。

5.最后利用Postman工具请求接口,得到结果显示。完成对接

http://www.dtcms.com/wzjs/217609.html

相关文章:

  • 做网站python好还是java刷赞网站推广ks
  • 百度搜索显示网站logo简述网络推广的方法
  • 网站制作 搜索长春疫情最新情况
  • python3 网站开发实例网站seo提升
  • 网站建设多少钱 小江网页设计腾讯企点怎么注册
  • 闵行营销型网站建设百度贴吧广告投放价格
  • 建网站的支付安全南宁网站seo
  • 自己网站视频直播怎么做武汉seo网站排名优化
  • 大学英文网站建设宁波网站关键词优化排名
  • 怎样做网站卖东西宁波seo快速优化课程
  • WordPress做的网站源代码短视频seo询盘系统
  • 在axure中做网站首页外贸推广平台
  • 宁波高端网站开发自媒体论坛交流推荐
  • 关于网站建设的名言最新消息新闻
  • 视频付费点播网站怎么做电子报刊的传播媒体是什么
  • wordpress安装环境重庆seo全面优化
  • 嘉兴网站建设推广做app的网站
  • 免费合同模板网站色盲眼镜
  • 集团网站建设方案做网站的好处
  • 安卓模仿网站开发详细教程世界杯竞猜
  • 独立ip做担保网站会被360拦截吗百度收录api怎么提交
  • 广州市建设用地供应计划网站朋友圈广告怎么投放
  • 青岛做家纺的公司网站北京seo公司有哪些
  • 医疗网站建设流程营销培训心得体会
  • 在线网站设计广州百度快速优化排名
  • 有关网站建设新闻资讯成都公司网站seo
  • 南山做网站公司怎么选择百度联盟怎么加入赚钱
  • 网站多数关键词站长之家素材
  • 网站规划有前途吗网页优化建议
  • 桂林八桂网百度推广优化师