0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

iText最基本的用法

科技绿洲 来源:Java技术指北 作者:Java技术指北 2023-10-09 16:37 次阅读

iText,是 一个开源 Java 库,支持 PDF 文档的开发和转换。其特点有:支持表格,图片,定制字体等。

maven 依赖

使用 iText 的时候需要用 maven 依赖如下:

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

简单实例

建立 PDF 需要 4 个步骤:

  1. 创建 一个 PdfWriter,用于定义 pdf 的路径地址
  2. 创建一个 pdf 文档,Document,与 PdfWriter 关联
  3. 向文档中添加内容
  4. 关闭文档

下面从 hello world 开始。

import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Paragraph;

public class PDFDemo {

    public static void main(String[] args) {
        try{
            PdfWriter pdfWriter = new PdfWriter("./demo.pdf");
            PdfDocument pdfDocument = new PdfDocument(pdfWriter);
            Document document = new Document(pdfDocument);
            document.add(new Paragraph("Hello World"));
            document.close();
        }catch(Exception e){
            e.printStackTrace();
        }
    }
}

示例结果:

图片

中文

iText 不支持默认是不支持中文字体的,所以需要定义 PdfFont 中文字体样式。使用 PdfFontFactory 的 createFont 创建一个中文字体,并将中文字体设置到 document 中。

public static void main(String[] args) {
    try{
        PdfWriter pdfWriter = new PdfWriter("./demo1.pdf");
        PdfDocument pdfDocument = new PdfDocument(pdfWriter);
        //字体文件可以使用 windows 系统中的
        PdfFont font = PdfFontFactory.createFont("E:pdfProjectsrcmainjavasimhei.ttf");
        Document document = new Document(pdfDocument).setFont(font);
        document.add(new Paragraph("Hello World!你好,itext"));
        document.close();
    }catch(Exception e){
        e.printStackTrace();
    }
}

示例结果:

图片

表格

在项目中经常需要 PDF 文件中打印表格,这时就可以使用 Table 对象,创建一个个单元格并将表格内容写入单元格中。

public static void main(String[] args) {
    try{
        PdfWriter pdfWriter = new PdfWriter("./demo2.pdf");
        PdfDocument pdfDocument = new PdfDocument(pdfWriter);
        PdfFont font = PdfFontFactory.createFont("E:pdfProjectsrcmainjavasimhei.ttf");
        Document document = new Document(pdfDocument).setFont(font);
        Table table = new Table(4);
        table.setWidth(500);
        table.addHeaderCell("header 1").addHeaderCell("header 2").addHeaderCell("header 3").addHeaderCell("header 4");
        for(int i = 0; i < 16; i++) {
            table.addCell("cell " + i);
        }
        document.add(table);

        document.close();
    }catch(Exception e){
        e.printStackTrace();
    }
}

示例结果:

图片

图片

图片的设置也很简单,创建 Image 对象填充到 document 中就可以了。

public static void main(String[] args) {
    try{
        PdfWriter pdfWriter = new PdfWriter("./demo3.pdf");
        PdfDocument pdfDocument = new PdfDocument(pdfWriter);
        PdfFont font = PdfFontFactory.createFont("E:pdfProjectsrcmainjavasimhei.ttf");
        Document document = new Document(pdfDocument).setFont(font);
        Image img = new Image(ImageDataFactory.create("E:pdfProjectsrcmainjavaimg.png"));
        document.add(img.setAutoScale(true));

        document.close();
    }catch(Exception e){
        e.printStackTrace();
    }
}

总结

本文从 iText 最基本的用法,分别介绍从表格,图片,中文来介绍 iText,希望能够帮助到你。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • JAVA
    +关注

    关注

    19

    文章

    2954

    浏览量

    104511
  • PDF
    PDF
    +关注

    关注

    1

    文章

    166

    浏览量

    33649
收藏 人收藏

    评论

    相关推荐

    吃透电阻的用法了解吗?

    电阻作为一种最基本电子元器件,广泛运用在各种电路中,通常我们也认为电阻是用法最简单的一种电子元器件,除了功率外,没有过多的讲究。如果今天我说就这个小小的电阻,许多资深电子工程师都不一定真正懂得如何用,您相信吗?
    发表于 11-18 09:40 561次阅读

    SQLx的基础用法和进阶用法

    SQLx是一个Rust语言的异步SQL数据库访问库,支持多种数据库,包括PostgreSQL、MySQL、SQLite等。本教程将以SQLite为例,介绍SQLx的基础用法和进阶用法。 基础用法
    的头像 发表于 09-19 14:29 2222次阅读

    Stream模块的基础用法和进阶用法

    有用。在本教程中,我们将介绍 Stream 模块的基础用法和进阶用法,并提供示例。 基础用法 在本节中,我们将介绍 Stream 模块的基础用法,并提供基础示例。 从 Vec 中创建
    的头像 发表于 09-19 15:33 1142次阅读

    上拉电阻与下拉电阻最基本的作用

    上拉电阻与下拉电阻上拉(Pull Up )或下拉(Pull Down)电阻(两者统称为“拉电阻”)最基本的作用是:将状态不确定的信号线通过一个电阻将其箝位至高电平(上拉)或低电平(下拉),无论它
    发表于 12-13 07:08

    常用灯头规格及用法介绍

    常用灯头规格及用法介绍 简述常用灯头规格及用法介绍
    发表于 04-19 15:40 56次下载

    深入电阻的用法

    电阻 作为一种最基本电子元器件,广泛运用在各种电路中,通常我们也认为电阻是用法最简单的一种电子元器件,除了功率外,没有过多的讲究。如果今天我说就这个小小的电阻,许多
    发表于 10-05 18:15 9467次阅读
    深入电阻的<b class='flag-5'>用法</b>

    状态机原理及用法

    状态机原理及用法状态机原理及用法状态机原理及用法
    发表于 03-15 15:25 0次下载

    电阻的巧妙用法

    电阻的巧妙用法
    发表于 12-16 12:59 0次下载

    MSF及Unicorn的介绍及用法

    MSF及Unicorn的介绍及用法
    发表于 09-07 15:09 3次下载
    MSF及Unicorn的介绍及<b class='flag-5'>用法</b>

    JDBC中的四个最基本对象功能及其用法

    本文详细概括了JDBC中的四个最基本对象功能及其用法。JDBC即Java数据库连接,是一种用于执行SQL语句的Java API,可以为多种关系数据库提供同一访问,它由一组用Java语言编写的类和接口
    发表于 02-06 09:03 2357次阅读

    AI UX :设计助手用法

    本集讨论了具有高投资回报率的用法类型,以及如何以及为什么要优先使用帮助用法
    的头像 发表于 11-13 06:40 1853次阅读

    STM32的ADC用法你都知道吗?

    说下单通道情况下,AD采样的几种用法。 1、AD单次转换+软件启动 最基本用法,通过程序启动AD,AD采集一次,我们就去读一次。这种情况,建议开启AD转换完成中断,在中断中读出AD值并做处理。 这种方式的优点是配置简单,缺点么
    的头像 发表于 06-29 15:07 1.2w次阅读
    STM32的ADC<b class='flag-5'>用法</b>你都知道吗?

    分享《verdi用法小结》的pdf

    分享Verdi用法小结的pdf文档
    的头像 发表于 02-18 20:21 1152次阅读
    分享《verdi<b class='flag-5'>用法</b>小结》的pdf

    变压器的最基本型式

    电子发烧友网站提供《变压器的最基本型式.pdf》资料免费下载
    发表于 10-26 10:16 0次下载
    变压器的<b class='flag-5'>最基本</b>型式

    开关和按钮的不同特点和用法

    开关和按钮的不同特点和用法! 开关和按钮是常见的电子设备或电器的组成部分,它们在控制电路或操作电子设备时起着关键的作用。虽然它们都用于控制电气电路的通断或启停,但它们之间存在一些不同的特点和用法
    的头像 发表于 12-11 10:40 1219次阅读