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

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

在 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 文件,并添加样式。

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.kler.cn/a/324597.html

相关文章:

  • 当微软windows的记事本被AI加持
  • 如何在uniapp中获取和修改Web项目的Cookie
  • 【从零开始的LeetCode-算法】3270. 求出数字答案
  • CSS回顾-基础知识详解
  • 活动|华院计算作为联盟理事单位出席进博会全球人工智能合作论坛
  • core 文件
  • ubuntu重新安装clickhouse
  • 前端面试题(九)
  • 【Mybatis】常见面试题汇总 共56题
  • 复试经验分享《一、问答题自测》(408、相关前沿技术)
  • 在Kali Linux VNC服务器上安装RDP服务
  • Android使用RecyclerView仿美团分类界面
  • 【JavaEE】——阻塞队列,生产消费者模型(较难)
  • BACnet协议-(基于ISO 8802-3 UDP)(2)
  • 【系统方案】智慧城市大数据平台建设方案(Word)
  • 【小程序websocket最佳实践,有心跳和断线重连】
  • JD面试题
  • huggingface实现中文文本分类
  • Gitee基本指令操作
  • 若依生成主子表
  • 前端框架:选择的艺术
  • IP地址不足
  • Python电能质量扰动信号分类(五)基于CNN-Transformer的一维信号分类模型
  • 版本发布 | IvorySQL 3.4 发版
  • 鸿蒙开发(NEXT/API 12)【硬件(获取出行业务事件信息)】车载系统
  • Java解析Excel文件