Itext 7 生成pdf带有背景图

news/2024/11/20 15:41:12/

Itext 7 生成pdf带有背景图并下载PDF到本地

引入jar包

		<dependency><groupId>com.itextpdf</groupId><artifactId>itext7-core</artifactId><version>7.0.3</version><type>pom</type></dependency>

代码实现

    @GetMapping(value = "itextPdfDownLoad")public void itextPdfDownLoad(HttpServletResponse response) throws IOException {response.reset();//设置文件编码response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode("个人荣誉.PDF", "UTF-8"));response.setContentType("application/octet-stream;charset=UTF-8");OutputStream outputStream = new BufferedOutputStream(response.getOutputStream());PageSize pageSize = PageSize.A4.rotate();PdfDocument pdfDoc = new PdfDocument(new PdfWriter(outputStream));Document doc = new Document(pdfDoc, pageSize);float[] f = new float[]{0.01f};Table table = new Table(UnitValue.createPercentArray(f));table.setWidth(745);Cell cell = new Cell();//设置表格边框颜色 这里设置的是白色cell.setBorder(new SolidBorder(new DeviceRgb(0xFFF, 0xFFF, 0xFFF),3));//设置插入字体PdfFont font = PdfFontFactory.createFont("STSong-Light", "UniGB-UCS2-H",true);//背景图上写入汉字Paragraph p = new Paragraph("努尔哈赤").setFont(font).setFontSize(13f).setFontColor(DeviceGray.BLACK);//写入汉字坐标p.setFirstLineIndent(140f);p.setFixedLeading(418f);cell.add(p);//获取表格背景图URL resource = this.getClass().getClassLoader().getResource("honour.png");assert resource != null;Image img = new Image(ImageDataFactory.create(resource.getPath()));cell.setNextRenderer(new ImageBackgroundCellRenderer(cell, img));cell.setHeight(590 * img.getImageHeight() / img.getImageWidth());table.addCell(cell);doc.add(table);doc.close();outputStream.flush();}

实现效果

在这里插入图片描述


http://www.ppmy.cn/news/624995.html

相关文章

git常用命令之分支操作

3. 分支 3.1 创建分支 场景1&#xff1a;创建新分支 工作中遇到的使用方式&#xff1a;1.拉取新分支&#xff0c;2.做新需求 /修复BUG &#xff0c;3.基于新分支提PR到目标分支 命令作用延展阅读git branch test11. 基于当前分支最新提交新建分支 test1(但不会切换到test1分…

淘宝直播技术干货:高清、低延时的实时视频直播技术解密

本文由淘宝直播音视频算法团队原创分享&#xff0c;原题“5G时代|淘宝直播高画质低延时技术探索”&#xff0c;收录时有改动。 1、引言 目前&#xff0c;5G技术应用正在逐步推进&#xff0c;相比目前广泛使用的4G&#xff0c; 它具有更高的速率&#xff0c;更大的容量&#x…

GANSynth论文翻译

写在前面&#xff1a;翻译完我也傻了。好多音乐/信号处理的东西确实不太懂&#xff0c;欢饮有理解的朋友们在我的翻译上二次创作。 这篇论文是"GANSynth: Adversarial Neural Audio Synthesis"&#xff0c;因为网上用GAN生成音乐的博客、代码真的比较少&#xff0c;我…

淘宝直播系统开发技术干货:高清、低延时的实时视频直播技术解密

面对实时视频直播系统开发技术的的高需求&#xff0c;当前面临的主要问题有&#xff1a; 1&#xff09;需要在内容生产过程中把控好质量和成本&#xff1b;2&#xff09;需要在内容分发和消费过程中确保用户体验。 为了解决直播系统开发这个问题, 我们有两个优化目标&#xff…

ffmpeg命令行太多了_FFmpeg命令行工具的使用方法

本文将重点介绍ffmpeg、ffprobe与ffplay这三个命令行工具&#xff0c;而ffserver则是作为简单的流媒体服务器存在的&#xff0c;与客户端开发关系不大&#xff0c;因此本书将不做介绍。前文曾经提到ffmpeg是进行媒体文件转码的命令行工具&#xff0c;ffprobe是用于查看媒体文件…

FFMPEG基本使用

1.ffprobe 查看媒体文件格式 的工具 ffprobe ~/Desktop/origin.mp4 ffprobe version 4.4 Copyright (c) 2007-2021 the FFmpeg developersbuilt with Apple clang version 12.0.5 (clang-1205.0.22.9)configuration: --prefix/opt/homebrew/Cellar/ffmpeg/4.4_2 --enable-sha…

ffmpeg 多路操作

多路流合成为一路&#xff0c;并排显示 ffmpeg -i "rtmp://192.168.20.130:1935/live/livestream1" -i "rtmp://192.168.20.130:1935/live/livestream2" -filter_complex "nullsrcsize640x480 [base]; [0:v] setptsPTS-STARTPTS, scale320x480 [left]…

通信原理_FM广播接收_gnuradio+USRP N320_含仿真流图

一、原理简介 1、调频广播 调频广播是将音频信号信息调制到高频率的无线电频率上&#xff0c;高频无线电的频率随着音频信号的变化而发生变化&#xff1b;再利用无线电波在空中进行远距离传播的特性进行无线广播&#xff1b;接收端进行频率解调恢复原始音频信号。我国调频广播…