Java/Springboot使用iText生成PDF

iText是一个用于创建和操作PDF文档的Java库。

常见使用步骤和示例如下:

1. 添加依赖

如果使用Maven项目,在pom.xml文件中添加以下依赖:

xml 复制代码
<dependency>
    <groupId>com.itextpdf</groupId>
    <artifactId>itextpdf</artifactId>
    <version>5.5.13.2</version>
</dependency>

2. 创建简单的PDF文档

以下是一个简单的Java代码示例,用于创建一个包含文本的PDF文档:

java 复制代码
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfWriter;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;

public class SimplePDFExample {
    public static void main(String[] args) {
        Document document = new Document();
        try {
            PdfWriter.getInstance(document, new FileOutputStream("simple.pdf"));
            document.open();
            document.add(new Paragraph("Hello, iText! This is a simple PDF document."));
            document.close();
        } catch (DocumentException | FileNotFoundException e) {
            e.printStackTrace();
        }
    }
}

在这个示例中:

  • 首先创建一个Document对象,它代表一个PDF文档。
  • 然后使用PdfWriter将文档与一个输出流相关联(这里是输出到名为simple.pdf的文件)。
  • 打开文档后,使用document.add()方法添加内容(这里是一个Paragraph对象,包含要显示的文本)。
  • 最后关闭文档。

3. 添加更多元素

  • 添加标题
java 复制代码
document.add(new Paragraph("Document Title", new Font(Font.FontFamily.TIMES_ROMAN, 18, Font.BOLD)));

这里创建了一个具有特定字体(Times Roman,18号字,加粗)的段落作为标题。

  • 添加列表
java 复制代码
List list = new List(List.UNORDERED);
list.add(new ListItem("Item 1"));
list.add(new ListItem("Item 2"));
document.add(list);

这创建了一个无序列表并添加到文档中。

4. 使用表格

java 复制代码
PdfPTable table = new PdfPTable(3); // 3列的表格
table.addCell("Column 1");
table.addCell("Column 2");
table.addCell("Column 3");
document.add(table);

可以创建一个PdfPTable对象,并向其中添加单元格来构建表格。

5. 设置页面属性

  • 设置页面大小和边距
java 复制代码
Rectangle pageSize = new Rectangle(PageSize.A4);
pageSize.setBackgroundColor(BaseColor.WHITE);
document.setPageSize(pageSize);
document.setMargins(36, 36, 36, 36);

这里设置页面为A4大小,白色背景,并指定了页面的边距。

6. 处理图像

java 复制代码
try {
    Image image = Image.getInstance("image.jpg");
    image.scaleToFit(200, 200); // 调整图像大小
    document.add(image);
} catch (BadElementException | IOException e) {
    e.printStackTrace();
}

可以从文件中读取图像并添加到文档中,还可以调整图像的大小。

这些只是iText的一些基本用法,它还可以用于更复杂的PDF操作,如数字签名、合并和拆分PDF等。在实际使用中,需要根据具体需求进一步探索和使用其丰富的功能。

相关推荐
前端工作日常26 分钟前
我学习到的Java中domain和dto区别
java·后端
码农学院1 小时前
基于Spring Boot的跨境电商多语言订单管理系统架构设计
java·大数据·spring boot
技术小结-李爽2 小时前
【工具】pom文件的<packaging>
java·maven
蓝创工坊Blue Foundry2 小时前
个人藏书太多怎么整理?用 OCR 字段提取汇总成电子书目
pdf·ocr·excel·文心一言·paddlepaddle·paddle
l156469482 小时前
突围!图文混合知识库难以解析,Kimi-K3 原生视觉架构深耕知识工作,DMXAPI 统一接口,缩短项目开发周期
java·大数据·开发语言
布吉岛的石头3 小时前
Java 程序员第 45 阶段11:网关统一路由大模型接口,配合 Nacos 配置治理,灰度路由:基于Nacos元数据实现大模型服务灰度发布与权重路由
java·服务发现
我命由我123453 小时前
Android 开发问题:Cannot resolve method ‘repeat‘ in ‘String‘
android·java·java-ee·android studio·android jetpack·android-studio·android runtime
baozhengw4 小时前
信创改造-SpringBootJar包改为WAR包部署Tomcat
java·tomcat
M1A14 小时前
基于 Spring AOP 构建系统操作日志:从注解设计到异步落库的完整实战
java
RainCity4 小时前
Java Swing 自定义组件库分享(十五)
java·笔记·后端