iText 5 通过创建 Document 对象,并使用 PdfWriter 将内容写入 PDF 文件

embedded/2024/9/24 8:04:23/

在 iText 5 中,你可以通过创建 Document 对象,并使用 PdfWriter 将内容写入 PDF 文件。以下是一个简单的例子,展示了如何根据样式填充数据生成 PDF 文件:

步骤 1: 添加 iText 5 依赖

首先,确保你的 Maven pom.xml 文件中包含了 iText 5 的依赖。

<!-- Maven pom.xml -->
<dependencies><dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.13.1</version></dependency>
</dependencies>

步骤 2: 创建 PDF 文件并添加样式

创建一个 Java 类,使用 iText 5 的 API 来生成 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 CreatePdfWithStyle {public static void main(String[] args) {// 定义输出 PDF 文件的路径String dest = "output.pdf";// 创建 Document 对象Document document = new Document();try {// 创建 PdfWriter 实例PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(dest));// 打开文档document.open();// 添加标题Paragraph title = new Paragraph("Hello, iText 5!");title.setAlignment(Paragraph.ALIGN_CENTER);title.setFont(FontFactory.getFont(FontFactory.HELVETICA, 24, Font.BOLD, BaseColor.BLUE));document.add(title);// 添加子标题Paragraph subtitle = new Paragraph("This is a subtitle.");subtitle.setAlignment(Paragraph.ALIGN_CENTER);subtitle.setFont(FontFactory.getFont(FontFactory.HELVETICA, 18, Font.BOLD, BaseColor.RED));document.add(subtitle);// 添加普通文本Paragraph text = new Paragraph("This is some normal text.");text.setAlignment(Paragraph.ALIGN_JUSTIFIED);text.setFont(FontFactory.getFont(FontFactory.TIMES_ROMAN, 12, Font.NORMAL, BaseColor.BLACK));document.add(text);// 添加换行document.add(Chunk.NEWLINE);// 添加列表List list = new List();list.add("Item 1");list.add("Item 2");list.add("Item 3");document.add(list);// 关闭文档document.close();System.out.println("PDF created successfully.");} catch (DocumentException | FileNotFoundException e) {e.printStackTrace();System.err.println("Error while creating the PDF document.");}}
}

步骤 3: 运行程序

运行上面的程序,它将在指定的路径创建一个名为 output.pdf 的文件,其中包含具有不同样式的标题、子标题、文本和列表。

注意事项

  1. 字体加载:iText 5 默认使用基础字体,如果需要使用其他字体,可能需要加载字体文件。例如,使用 FontFactory.getFont() 方法加载字体。

  2. 异常处理:在实际应用中,应适当处理异常,例如文档异常(DocumentException)和文件未找到异常(FileNotFoundException)。

  3. 样式设置:可以通过 ParagraphFontBaseColor 类来设置文本的样式,包括字体、大小、颜色和对齐方式。

  4. 元素添加:除了文本段落和列表,iText 5 还支持添加图像、表格和其他元素。

  5. PDF 阅读器:生成的 PDF 文件可以用任何 PDF 阅读器查看,如 Adobe Acrobat Reader。

通过上述步骤,你可以使用 iText 5 在 Java 应用程序中根据样式填充数据生成 PDF 文件。根据需要,你可以添加更复杂的内容和样式。


http://www.ppmy.cn/embedded/115992.html

相关文章

ftok函数详解

ftok 是 Linux 和 Unix 系统中用于生成唯一键值&#xff08;key&#xff09;的函数&#xff0c;常用于进程间通信&#xff08;IPC&#xff09;机制&#xff0c;如共享内存&#xff08;shared memory&#xff09;、消息队列&#xff08;message queues&#xff09;和信号量&…

【二分算法】模板总结

目录 一、二分查找时间复杂度 二、二分查找模板 2.1 模板一&#xff1a;标准的二分查找 2.2 模板二&#xff1a;二分查找左边界 2.3 模板三&#xff1a;二分查找右边界 三、总结&#xff1a; 一、二分查找时间复杂度 时间复杂度可以表示 O(n)O(log2​n)或者O(n)O(logn) …

24年秋招,网安面试三十道题

php爆绝对路径方法&#xff1f; 单引号引起数据库报错 访问错误参数或错误路径 探针类文件如phpinfo 扫描开发未删除的测试文件 google hacking phpmyadmin报路径&#xff1a;/phpmyadmin/libraries/lect_lang.lib.php利用漏洞读取配置文件找路径 恶意使用网站功能&#xff0c…

2.pytest框架实现一些前后置(固件,夹具)的处理,断言和allure-pytest插件生成allure测试报告

一、setup/teardowm,setup_class/teardown_class&#xff08;所有&#xff09; 为什么需要这些功能&#xff1f; 比如&#xff1a;web自动化执行用例之前&#xff0c;请问需要打开浏览器吗&#xff1f;用例执行后需要关闭浏览器吗&#xff1f; 前置后置 二、使用pytest.fixture…

2024.9.23 数据分析

数据脱敏&#xff1a;由于一些数据涉及商业、安全等&#xff0c;不方便公开&#xff0c;所以对隐私数据进行有策略的修改、隐藏等&#xff0c;创建一个与原始数据相似但不含真正敏感细节的数据副本&#xff0c;再由于后续的数据分析、开发测试等操作&#xff08;例如用户的姓名…

OpenHarmony(鸿蒙南向开发)——小型系统内核(LiteOS-A)【Trace调测】

往期知识点记录&#xff1a; 鸿蒙&#xff08;HarmonyOS&#xff09;应用层开发&#xff08;北向&#xff09;知识点汇总 鸿蒙&#xff08;OpenHarmony&#xff09;南向开发保姆级知识点汇总~ 持续更新中…… 基本概念 Trace调测旨在帮助开发者获取内核的运行流程&#xff0c…

大厂面试真题:SpringBoot的核心注解

其实理解一个注解就行了&#xff20;SpringBootApplication&#xff0c;我们的启动类其实就加了这一个 但是这么答也不行&#xff0c;因为面试官要的答案肯定不止这一个 我们打开SpringBootApplication的源码&#xff0c;会发现上面加了一堆的注解 相对而言比较重要是下面三个…

项目实战:lngress搭建Nginx+WP论坛+MariaDB

1. 网站架构 本次部署形式完全舍弃 Docker&#xff0c;将所有应用都置于Kubernetes&#xff0c;采用 Deployment 而非单 Pod 部署&#xff0c;稳定性得到升级。 2. 部署 MariaDB [rootk8s-master ~]# mkdir tdr [rootk8s-master ~]# cd tdr/ &#xff08;1&#xff09;定义 …