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

itextPdf生成pdf简单示例

文章环境

jdk1.8,springboot2.6.13

POM依赖

        <dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.13</version></dependency><dependency><groupId>com.itextpdf</groupId><artifactId>itext-asian</artifactId><version>5.2.0</version></dependency>

示例代码

package com.example.example;import com.itextpdf.text.*;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter;import java.io.FileOutputStream;
import java.io.IOException;/*** @author bao* @date 2024/3/25 16:10*/
public class SimpleGenPdf {public static void main(String[] args) throws DocumentException,IOException {// 定义中文字体BaseFont bfChinese = BaseFont.createFont("STSong-Light","UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);Font fontCN = new Font(bfChinese, 12, Font.NORMAL);// 步骤1:创建一个大小为A4的文档Document document = new Document(PageSize.A4);try {// 步骤 2:// 我们为document创建一个监听,并把PDF流写到文件中//获取资源文件路径String resourcePath = "./src/main/resources/";PdfWriter.getInstance(document, new FileOutputStream(resourcePath + "/pdf/simplePdf.pdf"));// 步骤 3:打开文档document.open();// 段落Paragraph paragraph = new Paragraph("证明\r\r", new Font(bfChinese, 13, Font.NORMAL));//设置文字居中paragraph.setAlignment(Element.ALIGN_CENTER);//设置左缩进paragraph.setIndentationLeft(12);//设置右缩进paragraph.setIndentationRight(12);//设置首行缩进paragraph.setFirstLineIndent(24);//行间距paragraph.setLeading(15f);//设置段落上空白paragraph.setSpacingBefore(5f);//设置段落下空白paragraph.setSpacingAfter(5f);document.add(paragraph);//第一个表格document.add(new Paragraph("默认情况下的大小---居中 80%", fontCN));// 创建一个有3列的表格PdfPTable userTable = new PdfPTable(3);// 定义一个表格列头PdfPCell tableColumnHead = new PdfPCell(new Paragraph("header with colspan 3"));// 定义一个表格单元的跨度tableColumnHead.setColspan(3);// 把单元加到表格中userTable.addCell(tableColumnHead);//把下面这9项顺次的加入到表格中,当一行充满时候自动折行到下一行userTable.addCell("1.1");userTable.addCell("2.1");userTable.addCell("3.1");userTable.addCell("1.2");userTable.addCell("2.2");userTable.addCell("3.2");userTable.addCell("1.3");userTable.addCell("2.3");userTable.addCell("3.3");// 增加到文档中document.add(userTable);//第二个表格document.add(new Paragraph("居中 100%", fontCN));PdfPTable centerTable = userTable;// 设置表格大小为可用空白区域的100%centerTable.setWidthPercentage(100);// 增加到文档中2document.add(centerTable);//第三个表格document.add(new Paragraph("居右 50%", fontCN));PdfPTable rightTable = userTable;// 设置表格大小为可用空白区域的50%rightTable.setWidthPercentage(50);// 设置水平对齐方式为 居右rightTable.setHorizontalAlignment(Element.ALIGN_RIGHT);// 增加到文档中3document.add(rightTable);document.add(new Paragraph("居左 50%", fontCN));PdfPTable leftTable = userTable;// 设置水平对齐方式为 居左leftTable.setHorizontalAlignment(Element.ALIGN_LEFT);document.add(leftTable);} catch (Exception de) {de.printStackTrace();}// 步骤 5:关闭文档document.close();}
}

生成结果

git完整项目代码

bnmjstu / itextpdf-simple-example · GitCode

相关文章:

itextPdf生成pdf简单示例

文章环境 jdk1.8&#xff0c;springboot2.6.13 POM依赖 <dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.13</version></dependency><dependency><groupId>com.ite…...

【Linux系列】tree和find命令

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

AI预测福彩3D第23弹【2024年4月1日预测--第4套算法重新开始计算第9次测试】

今天继续对第4套算法进行测试&#xff0c;因为第4套算法已连续多期命中&#xff0c;相对来说还算稳定。好了&#xff0c;废话不多说了&#xff0c;直接上预测的结果吧~ 2024年4月1日福彩3D的七码预测结果如下 第一套&#xff1a; 百位&#xff1a;0 1 …...

Java常见限流用法介绍和实现

目录 一、现象 二、工具 ​​​​​​1、AtomicInteger,AtomicLong 原子类操作 ​​​​​​2、RedisLua ​​​​​​3、Google Guava的RateLimiter 1&#xff09; 使用 2&#xff09; Demo 3&#xff09; 优化demo 4、阿里开源的Sentinel 三、算法 1、计数限流 &…...

算法——图论:判断二分图(染色问题)

题目&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 方法一&#xff1a;并查集 class Solution { public:vector<int>father;int find(int x){if (father[x] ! x)father[x] find(father[x]);return father[x];}void add(int x1, int x2){int fa1 find(x1), f…...

三步提升IEDA下载速度——修改IDEA中镜像地址

找到IDEA的本地安装地址 D:\tool\IntelliJ IDEA 2022.2.4\plugins\maven\lib\maven3\conf 搜索阿里云maven仓库 复制https://developer.aliyun.com/mvn/guide中红框部分代码 这里也是一样的&#xff1a; <mirror><id>aliyunmaven</id><mirrorOf>*&…...

CentOS7 RPM升级支持BBR TCP/CC的内核版本

列出安装的内核 rpm -qa kernel # yum list installed kernel 删除已安装内核 sudo dnf remove kernel-4.0.4-301.fc22.x86_64 安装内核 rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noar…...

文本向量模型BGE与BGE-M3

BGE模型 BGE模型对应的技术报告为《C-Pack: Packaged Resources To Advance General Chinese Embedding》 训练数据 为了训练BGE向量模型&#xff0c;构建了C-MTP数据集&#xff0c;它包括了用来训练文本向量的文本对数据&#xff08;问答对、两个同义句子、相同主题的两个文…...

【黑马头条】-day04自媒体文章审核-阿里云接口-敏感词分析DFA-图像识别OCR-异步调用MQ

文章目录 day4学习内容自媒体文章自动审核今日内容 1 自媒体文章自动审核1.1 审核流程1.2 内容安全第三方接口1.3 引入阿里云内容安全接口1.3.1 添加依赖1.3.2 导入aliyun模块1.3.3 注入Bean测试 2 app端文章保存接口2.1 表结构说明2.2 分布式id2.2.1 分布式id-技术选型2.2.2 雪…...

新能源充电桩站场AI视频智能分析烟火检测方案及技术特点分析

新能源汽车充电起火的原因多种多样&#xff0c;涉及技术、设备、操作等多个方面。从技术层面来看&#xff0c;新能源汽车的电池管理系统可能存在缺陷&#xff0c;导致电池在充电过程中出现过热、短路等问题&#xff0c;从而引发火灾。在设备方面&#xff0c;充电桩的设计和生产…...

springboot集成logback-spring.xml文件

彩色日志日志分debug和error文件输出&#xff0c;方便开发人员运维日志限制最大保管天数日志限制总量大小占用量GB日志限制单个文件大小MB日志显示最大保留天数屏蔽没用的日志 <?xml version"1.0" encoding"UTF-8"?> <!--~ Copyright (c) 2020…...

centos7 安装 nginx

一、yum 方式安装 1.安装yum工具 sudo yum install yum-utils 2. 安装epel yum install epel-release 3.安装nginx&#xff1a; yum install nginx 4.查看版本 nginx -v 5.设置开机自启动 systemctl enable nginx nginx 常用命令&#xff1a; 1&#xff09;启动nginx …...

29. UE5 RPG应用GamplayAbility

前面几篇文章&#xff0c;总算把GE给更新完了&#xff0c;GE的基础应用也算讲清楚了。接下来&#xff0c;我们将更新GA的相应的课程了&#xff0c;首先&#xff0c;这一篇先对GA做一个简单的介绍&#xff0c;然后实现一下如何实现给角色应用一个GA。 简介 GamplayAbility 简称…...

http和https的区别!

HTTP 明文传输&#xff0c;数据都是未加密的&#xff0c;安全性较差&#xff0c;HTTPS&#xff08;SSLHTTP&#xff09; 数据传输过程是加密的&#xff0c;安全性较好。 使用 HTTPS 协议需要到 CA&#xff08;Certificate Authority&#xff0c;数字证书认证机构&#xff09; …...

使用AOP实现打印日志

首先创建annotation.SystemLog类&#xff1a; package com.gjh.annotation;import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;Target(ElementType.METHOD…...

2024年新算法-冠豪猪优化算法(CPO),CPO-RF-Adaboost,CPO优化随机森林RF-Adaboost回归预测-附代码

冠豪猪优化算法&#xff08;CPO&#xff09;是一种基于自然界中猪群觅食行为启发的优化算法。该算法模拟了猪群在寻找食物时的集群行为&#xff0c;通过一系列的迭代过程来优化目标函数&#xff0c;以寻找最优解。在这个算法中&#xff0c;猪被分为几个群体&#xff0c;每个群体…...

浅谈高阶智能驾驶-NOA领航辅助的技术与发展

浅谈高阶智能驾驶-NOA领航辅助的技术与发展 附赠自动驾驶学习资料和量产经验&#xff1a;链接 2019年在国内首次试驾特斯拉NOA领航辅助驾驶的时候&#xff0c;当时兴奋的觉得未来已来;2020年在试驾蔚来NOP领航辅助驾驶的时候&#xff0c;顿时不敢小看国内新势力了;现在如果哪家…...

大模型 智能体 智能玩具 智能音箱 构建教程 wukong-robot

视频演示 10:27 一、背景 继上文《ChatGPT+小爱音响能擦出什么火花?》可以看出大伙对AI+硬件的结合十分感兴趣,但上文是针对市场智能音响的AI植入,底层是通过轮询拦截,算是hack兼容,虽然官方有提供开发者接口,也免不了有许多局限性(比如得通过特定指令唤醒),不利于我…...

Clickhouse-表引擎探索之MergeTree

引言 前文曾说过&#xff0c;Clickhouse是一个强大的数据库Clickhouse-一个潜力无限的大数据分析数据库系统 其中一个强大的点就在于支持各类表引擎以用于不同的业务场景。 MergeTree MergeTree系列的引擎被设计用于插入极大量的数据到一张表当中。数据可以以数据片段的形式一…...

网络电视盒子哪个好?小编分享电视盒子品牌排行榜

电视盒子使用频率高&#xff0c;功能丰富&#xff0c;价格划算&#xff0c;是我们日常不可或缺的部分&#xff0c;小编经常会被问到与电视盒子相关的问题&#xff0c;考虑到很多朋友并不了解网络电视盒子哪个好&#xff0c;这次我来分享业内权威电视盒子品牌排行榜&#xff0c;…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》

在注意力分散、内容高度同质化的时代&#xff0c;情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现&#xff0c;消费者对内容的“有感”程度&#xff0c;正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中&#xff0…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢

随着互联网技术的飞速发展&#xff0c;消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁&#xff0c;不仅优化了客户体验&#xff0c;还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用&#xff0c;并…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1

每日一言 生活的美好&#xff0c;总是藏在那些你咬牙坚持的日子里。 硬件&#xff1a;OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写&#xff0c;"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...

06 Deep learning神经网络编程基础 激活函数 --吴恩达

深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...

OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 在 GPU 上对图像执行 均值漂移滤波&#xff08;Mean Shift Filtering&#xff09;&#xff0c;用于图像分割或平滑处理。 该函数将输入图像中的…...

JVM虚拟机:内存结构、垃圾回收、性能优化

1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...

华为OD机考-机房布局

import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...

[ACTF2020 新生赛]Include 1(php://filter伪协议)

题目 做法 启动靶机&#xff0c;点进去 点进去 查看URL&#xff0c;有 ?fileflag.php说明存在文件包含&#xff0c;原理是php://filter 协议 当它与包含函数结合时&#xff0c;php://filter流会被当作php文件执行。 用php://filter加编码&#xff0c;能让PHP把文件内容…...

【PX4飞控】mavros gps相关话题分析,经纬度海拔获取方法,卫星数锁定状态获取方法

使用 ROS1-Noetic 和 mavros v1.20.1&#xff0c; 携带经纬度海拔的话题主要有三个&#xff1a; /mavros/global_position/raw/fix/mavros/gpsstatus/gps1/raw/mavros/global_position/global 查看 mavros 源码&#xff0c;来分析他们的发布过程。发现前两个话题都对应了同一…...

RLHF vs RLVR:对齐学习中的两种强化方式详解

在语言模型对齐&#xff08;alignment&#xff09;中&#xff0c;强化学习&#xff08;RL&#xff09;是一种重要的策略。而其中两种典型形式——RLHF&#xff08;Reinforcement Learning with Human Feedback&#xff09; 与 RLVR&#xff08;Reinforcement Learning with Ver…...