下载资源后端资源详情
spring-openpdf-project.zip
大小:9.43MB
价格:15积分
下载量:0
评分:
5.0
上传者:lhmyy521125
更新日期:2024-07-28

Spring Boot集成OpenPDF和Freemarker实现PDF导出功能教程配套源码

资源文件列表(大概)

文件名
大小
spring-openpdf-project/
-
__MACOSX/._spring-openpdf-project
176B
spring-openpdf-project/.DS_Store
6KB
__MACOSX/spring-openpdf-project/._.DS_Store
176B
spring-openpdf-project/pom.xml
3.87KB
__MACOSX/spring-openpdf-project/._pom.xml
176B
spring-openpdf-project/.gitignore
395B
__MACOSX/spring-openpdf-project/._.gitignore
176B
spring-openpdf-project/.mvn/
-
__MACOSX/spring-openpdf-project/._.mvn
176B
spring-openpdf-project/.idea/
-
__MACOSX/spring-openpdf-project/._.idea
176B
spring-openpdf-project/src/
-
__MACOSX/spring-openpdf-project/._src
176B
spring-openpdf-project/.mvn/wrapper/
-
__MACOSX/spring-openpdf-project/.mvn/._wrapper
176B
spring-openpdf-project/.idea/encodings.xml
186B
__MACOSX/spring-openpdf-project/.idea/._encodings.xml
176B
spring-openpdf-project/.idea/uiDesigner.xml
8.59KB
__MACOSX/spring-openpdf-project/.idea/._uiDesigner.xml
176B
spring-openpdf-project/.idea/jarRepositories.xml
1.27KB
spring-openpdf-project/.idea/inspectionProfiles/
-
__MACOSX/spring-openpdf-project/.idea/._inspectionProfiles
176B
spring-openpdf-project/.idea/.gitignore
176B
__MACOSX/spring-openpdf-project/.idea/._.gitignore
176B
spring-openpdf-project/.idea/workspace.xml
8.57KB
spring-openpdf-project/.idea/misc.xml
534B
spring-openpdf-project/.idea/compiler.xml
1.31KB
spring-openpdf-project/src/.DS_Store
6KB
__MACOSX/spring-openpdf-project/src/._.DS_Store
120B
spring-openpdf-project/src/test/
-
__MACOSX/spring-openpdf-project/src/._test
176B
spring-openpdf-project/src/main/
-
__MACOSX/spring-openpdf-project/src/._main
176B
spring-openpdf-project/.mvn/wrapper/maven-wrapper.properties
1019B
__MACOSX/spring-openpdf-project/.mvn/wrapper/._maven-wrapper.properties
176B
spring-openpdf-project/.mvn/wrapper/maven-wrapper.jar
58.52KB
__MACOSX/spring-openpdf-project/.mvn/wrapper/._maven-wrapper.jar
176B
spring-openpdf-project/.idea/inspectionProfiles/Project_Default.xml
7.68KB
__MACOSX/spring-openpdf-project/.idea/inspectionProfiles/._Project_Default.xml
176B
spring-openpdf-project/src/test/java/
-
__MACOSX/spring-openpdf-project/src/test/._java
176B
spring-openpdf-project/src/main/resources/
-
__MACOSX/spring-openpdf-project/src/main/._resources
176B
spring-openpdf-project/src/main/java/
-
__MACOSX/spring-openpdf-project/src/main/._java
176B
spring-openpdf-project/src/test/java/com/
-
__MACOSX/spring-openpdf-project/src/test/java/._com
176B
spring-openpdf-project/src/main/resources/static/
-
__MACOSX/spring-openpdf-project/src/main/resources/._static
176B
spring-openpdf-project/src/main/resources/templates/
-
__MACOSX/spring-openpdf-project/src/main/resources/._templates
176B
spring-openpdf-project/src/main/resources/application.yml
366B
__MACOSX/spring-openpdf-project/src/main/resources/._application.yml
176B
spring-openpdf-project/src/main/java/com/
-
__MACOSX/spring-openpdf-project/src/main/java/._com
176B
spring-openpdf-project/src/test/java/com/toher/
-
__MACOSX/spring-openpdf-project/src/test/java/com/._toher
176B
spring-openpdf-project/src/main/resources/static/img/
-
spring-openpdf-project/src/main/resources/static/font/
-
spring-openpdf-project/src/main/resources/templates/template.ftl
3.01KB
spring-openpdf-project/src/main/java/com/toher/
-
__MACOSX/spring-openpdf-project/src/main/java/com/._toher
176B
spring-openpdf-project/src/test/java/com/toher/project/
-
__MACOSX/spring-openpdf-project/src/test/java/com/toher/._project
176B
spring-openpdf-project/src/main/resources/static/img/test.png
241.51KB
spring-openpdf-project/src/main/resources/static/font/simsun.ttc
17.37MB
spring-openpdf-project/src/main/java/com/toher/project/
-
__MACOSX/spring-openpdf-project/src/main/java/com/toher/._project
176B
spring-openpdf-project/src/test/java/com/toher/project/ApplicationTests.java
223B
__MACOSX/spring-openpdf-project/src/test/java/com/toher/project/._ApplicationTests.java
176B
spring-openpdf-project/src/main/java/com/toher/project/Application.java
308B
__MACOSX/spring-openpdf-project/src/main/java/com/toher/project/._Application.java
176B
spring-openpdf-project/src/main/java/com/toher/project/openpdf/
-
spring-openpdf-project/src/main/java/com/toher/project/openpdf/OpenPdfService.java
4.81KB
spring-openpdf-project/src/main/java/com/toher/project/openpdf/PdfService.java
3.12KB
spring-openpdf-project/src/main/java/com/toher/project/openpdf/ProductVo.java
343B
spring-openpdf-project/src/main/java/com/toher/project/openpdf/PdfController.java
3.9KB

资源内容介绍

该源码对应个人博客【Spring Boot集成OpenPDF和Freemarker实现PDF导出功能并附源码】配套教程,地址:https://blog.csdn.net/lhmyy521125/article/details/140743558 小伙伴可以自行下载学习!不需要积分!不需要积分!不需要积分!如果相关资源对您有所帮助,希望一键三连给博主一点点鼓励,后续更新更多教程和对应免费源码,如果您有任何疑问或建议,请随时留言讨论!前言在我们日常开发中,生成 PDF 文件是一项常见的需求。无论是生成单据、报表、发票还是其他文档,PDF 格式因其便捷的打印和跨平台支持而被广泛使用。本文将介绍如何在 Spring Boot 项目中使用 flying-saucer-pdf 和 Freemarker 来实现 HTML 模板到 PDF 的导出功能`Flying Saucer`是一个纯Java库,用于使用`CSS 2.1 / CSS 3`呈现任意格式良好的XML(或XHTML),用于布局和格式化,输出到Swing面板,PDF和图像
package com.toher.project.openpdf;/** * @Author 李怀明 * @Date 2024/7/28 12:35 AM * @Version 1.0 */import com.lowagie.text.Font;import com.lowagie.text.*;import com.lowagie.text.Image;import com.lowagie.text.alignment.HorizontalAlignment;import com.lowagie.text.alignment.VerticalAlignment;import com.lowagie.text.html.simpleparser.HTMLWorker;import com.lowagie.text.pdf.*;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import org.springframework.ui.freemarker.FreeMarkerTemplateUtils;import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer;import org.xhtmlrenderer.pdf.ITextRenderer;import java.awt.*;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.StringReader;import java.util.Map;@Servicepublic class OpenPdfService { @Autowired private FreeMarkerConfigurer freeMarkerConfigurer; public byte[] generatePdf() throws Exception { ByteArrayOutputStream out = new ByteArrayOutputStream(); // 创建PDF文档 Document document = new Document(); PdfWriter writer = PdfWriter.getInstance(document, out); //如果需要定义字体,将自己的字体放在 resources/fonts目录下 //BaseFont font = BaseFont.createFont("fonts/Viaoda_Libre/ViaodaLibre-Regular.ttf", BaseFont.IDENTITY_H, false); BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); Font docFont = new Font(bfChinese, 10, Font.UNDEFINED, Color.BLACK); //设置水印 writer.setPageEvent(new PdfPageEventHelper() { @Override public void onEndPage(PdfWriter writer, Document document) { PdfContentByte waterMar = writer.getDirectContentUnder(); String text = "Micro麦可乐"; addTextFullWaterMark(waterMar, text, bfChinese); } }); // 设置边距 document.setMargins(20, 20, 20, 20); // 打开文档 document.open(); /** * 01 表格演示 */ String[] tableTitle = new String[]{"清单", "数量", "单价", "总价"}; Table table = new Table(tableTitle.length); table.setWidths(new float[]{70, 10, 10, 10}); // 设置表格前的间距 table.setSpacing(0); // 设置表格在页面中所占的宽度百分比 table.setWidth(100); table.setBorder(0); //模拟5行表格数据 for (int row = 0; row < 5; row++) { for (int i = 0; i < tableTitle.length; i++) { Chunk chunk; if (row == 0) { chunk = new Chunk(tableTitle[i], docFont); } else { chunk = new Chunk(row + "行 模拟数据" + i, docFont); } // 建立单元格 Cell cell = new Cell(chunk); // 设置水平对齐 cell.setHorizontalAlignment(HorizontalAlignment.CENTER); // 设置垂直对齐 cell.setVerticalAlignment(VerticalAlignment.CENTER); table.addCell(cell); } } document.add(table); /** * 02 写入图片 */ byte[] byteArray = new byte[0]; InputStream inputStream = this.getClass().getResourceAsStream("/static/img/test.png"); if (inputStream != null) { byteArray = new byte[inputStream.available()]; inputStream.read(byteArray); } Image image = Image.getInstance(byteArray); // 图片进行缩放 image.scaleAbsolute(200, 200); document.add(image); /** * 03 写入html模版内容 */ HTMLWorker htmlWorker = new HTMLWorker(document); String html = "<p style='color: crimson'>Hello, micro</p>"; htmlWorker.parse(new StringReader(html)); // 关闭文档 document.close(); return out.toByteArray(); } public static void addTextFullWaterMark(PdfContentByte waterMar, String text, BaseFont bfChinese) { waterMar.beginText(); PdfGState gs = new PdfGState(); // 设置填充字体不透明度为0.2f gs.setFillOpacity(0.2f); waterMar.setFontAndSize(bfChinese, 40); // 设置透明度 waterMar.setGState(gs); // 设置水印对齐方式 水印内容 X坐标 Y坐标 旋转角度 for (int x = 0; x <= 700; x += 200) { for (int y = 0; y <= 800; y += 200) { waterMar.showTextAligned(Element.ALIGN_RIGHT, text, x, y, 35); } } // 设置水印颜色 waterMar.setColorFill(Color.GRAY); //结束设置 waterMar.endText(); waterMar.stroke(); }}

用户评论 (0)

发表评论

captcha

相关资源

python 模拟人工鼠标轨迹算法Demo

参考博客文章:https://codersrc.blog.csdn.net/article/details/140670756AI大模型通过学习大量的人类鼠标操作数据,能够识别和模拟出自然且具有个体差异的鼠标轨迹。以下是实现这一技术的关键步骤:数据收集:收集不同玩家在各种游戏环境中的鼠标操作数据,包括移动速度、停顿、加速度等。模型训练:利用深度学习算法,训练AI模型识别鼠标操作中的模式和规律。轨迹生成:在给定起点和终点的情况下,AI模型能够生成符合人类操作习惯的鼠标轨迹。鼠标轨迹api底层实现采用C/C++语言,利用其高性能和系统级访问能力,开发出高效的鼠标轨迹模拟算法。通过将算法封装为DLL(动态链接库),可以方便地在不同的编程环境中调用,实现跨语言的兼容性。通过DLL封装,开发者可以在C++、Python、易语言、按键精灵等多种编程语言中使用鼠标轨迹模拟技术。这种封装方式提供了一种简便的接口,使得不同背景的开发者都能够轻松集成和使用这一技术。

24.66MB12积分

一图流Git下载与安装

该资源包含以下内容:博客文章 -"git下载与安装"(md版):本篇markdown格式的博客文章详细介绍了git的下载和安装过程。文章结构清晰,步骤详细,旨在帮助初学者快速上手git这一版本控制系统。文章内容包括git的基本概念、下载链接、安装指南以及初步使用的说明,适合希望了解并开始使用git的用户。博客文章 -"git下载与安装"(pdf版):为了方便用户在各种设备上阅读,我们还提供了上述博客文章的pdf版本。这个版本经过精心排版,可以在电脑、平板或手机上阅读,确保无论您在任何场合都能获得良好的阅读体验。git安装包:为了让您能够顺利开始使用git,我们特别提供了官方git的最新版本安装包。此安装包适用于多个操作系统,包括windows、macos和linux等。请根据您的系统类型选择合适的安装包进行下载和安装。总之,通过这些资源,无论是新手还是有经验的开发者,都能够有效地掌握git的下载、安装及基本使用方法。我们希望这些材料能为您的软件工程工作带来便利,提升您的工作效率。

69.47MB26积分

【JavaWeb学习笔记】登录实现与校验

此资源包括以下资源文件:博客文章 - 【javaweb学习笔记】登录实现与校验(md版):本文深入讲述了登录功能的设计与实现,从功能开发到登录校验的每个环节都进行了详细的阐述。内容涵盖会话技术的应用、会话跟踪方案的选择,以及两种常见的会话跟踪机制:cookie和session。同时,文章还介绍了jwt(json web token)令牌的使用,包括生成和校验jwt的过程,如何将jwt用于登录流程,并详细说明了过滤器(filter)和拦截器(interceptor)在登录校验中的应用。此外,文章还提供了全局异常处理器的相关问题解决方案,帮助您构建一个安全且健壮的java web登录系统。博客文章 - 【javaweb学习笔记】登录实现与校验(pdf版):为了适应您在不同设备上的阅读需求,我们同时提供了上述文章内容的pdf格式。优雅的排版设计确保了在各种设备上都能有良好的阅读体验,无论您是在桌面电脑、平板还是手机上,都能够轻松学习和参考。

8.46MB22积分

Typroa如何下载与安装

无论您是写作爱好者、博客作者还是专业的文档编写者,以下资源将帮助您轻松安装并开始使用这一广受欢迎的markdown编辑器。typora安装文档:这份详细的安装文档提供了step-by-step的指导,帮助您在不同操作系统上顺利完成typora的安装过程。从下载到配置,每步都配有清晰的说明和图示,确保即使是初学者也能够毫无困扰地完成安装。typora安装包:我们提供的是官方最新版本的typora安装包,支持多种操作系统,包括windows、macos和linux。只需根据您的电脑系统选择合适的版本进行下载,便可以开始安装过程。安装工具:为了简化安装流程,我们还附上了一些有用的安装辅助工具。这些工具旨在自动化一些安装步骤,解决可能遇到的兼容性问题,以及帮助您保持typora处于最新状态。

94.43MB11积分