【itext7】itext7操作PDF文档之创建PDF文档、加载PDF文档、添加空白页、操作PDF页面、itext中的常见类及其方法

这篇文章,主要介绍itext7操作PDF文档之创建PDF文档、加载PDF文档、添加空白页、操作PDF页面、itext中的常见类及其方法。

目录

一、itext7操作PDF

1.1、itext7介绍

1.2、引入itext-core依赖

1.3、创建PDF文档

1.4、加载PDF文档

1.5、操作PDF页面

1.6、添加空白页面

二、itext常见类和方法

2.1、PdfDocument类

2.2、PdfPage类

2.3、Document类


一、itext7操作PDF

1.1、itext7介绍

itext7是一款功能更加强大的PDF文档操作组件,它的功能虽然强大,但是是要收费的,当然也有免费版本的,免费那功能肯定就会有删减,不过免费版本的itext差不多已经可以满足大部分需求了。

itext7和PDFBox类似,但是itext操作PDF比PDFBox更加的强大,itext7是将整个PDF文件抽象为一个PdfDocument对象,文件由多个PdfPage页面或者由单个Document文档对象构成,Document对象默认就表示PDF文档的第一页,在Document之上,可以进行内容的编辑,例如:添加段落、添加表单、图片、添加空白页、设置字体等。itext对PDF文档的读取操作是使用PdfReader类实现,对PDF文档的写出操作是使用PdfWriter类实现。

itext中常见的类有下面这些:

  • PdfDocument类:表示整个PDF文件。
  • PdfPage类:表示文档中的一个页面。
  • Document类:表示PDF文件中的文档对象。
  • PdfWriter类:写出PDF文件。
  • PdfReader类:读取PDF文件。
  • Image类:表示图片对象。
  • AreaBreak类:表示某一块内容区域。
  • 等等。

下面就介绍一下itext7如何操作PDF文档。

1.2、引入itext-core依赖

我这里使用的是itext-core7.1.16版本,只需要引入一个itext-core依赖即可,因为这个依赖里面已经给我们引入了itext所需要的依赖。

XML 复制代码
<!-- 引入 itext7-core 依赖 -->
<dependency>
    <groupId>com.itextpdf</groupId>
    <artifactId>itext7-core</artifactId>
    <version>7.1.16</version>
    <type>pom</type>
</dependency>

1.3、创建PDF文档

java 复制代码
package itext.demo.basic;

import com.itextpdf.kernel.geom.PageSize;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;

/**
 * @version 1.0.0
 * @Date: 2023/7/19 14:17
 * @Author ZhuYouBin
 * @Description: itext-core操作PDF文档
 */
public class ITextCreateBlankPDF {
    public static void main(String[] args) throws Exception {
        // 1、创建Pdf文档
        PdfDocument pdfDocument = new PdfDocument(new PdfWriter("D:\\itext.pdf"));
        // 2、创建空白页面,必须包含页面,否则创建时候报错
        pdfDocument.addNewPage(PageSize.A4);
        pdfDocument.addNewPage(PageSize.A4);
        // 3、关闭PDF文件
        pdfDocument.close();
    }
}

1.4、加载PDF文档

itext可以加载已经存在的PDF文档,这需要使用PdfReader类进行读取PDF文档。

java 复制代码
package itext.demo.basic;

import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfReader;

import java.io.IOException;

/**
 * @version 1.0.0
 * @Date: 2023/7/19 15:19
 * @Author ZhuYouBin
 * @Description: 加载已有PDF文档
 */
public class ReadPDF {
    public static void main(String[] args) throws IOException {
        // 1、创建PDF文档对象
        PdfDocument pdfDocument = new PdfDocument(new PdfReader("D:\\itext.pdf"));
        // 获取总页数
        int pages = pdfDocument.getNumberOfPages();
        System.out.println(pages);
        // 关闭文档
        pdfDocument.close();
    }
}

1.5、操作PDF页面

PdfDocument类可以操作PDF页面,例如:添加空白页面、删除指定页面、移动页面、获取总页数等。

java 复制代码
package itext.demo.basic;

import com.itextpdf.kernel.geom.PageSize;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfPage;
import com.itextpdf.kernel.pdf.PdfWriter;

/**
 * @version 1.0.0
 * @Date: 2023/7/19 15:21
 * @Author ZhuYouBin
 * @Description: PDF页面操作
 */
public class PageOperation {
    public static void main(String[] args) throws Exception {
        // 1、创建PDF文档
        PdfDocument pdfDocument = new PdfDocument(new PdfWriter("D:\\itext.pdf"));
        // 2、添加页面
        pdfDocument.addNewPage(PageSize.A4);
        pdfDocument.addNewPage(PageSize.A4);
        pdfDocument.addNewPage(PageSize.A4);
        pdfDocument.addNewPage(PageSize.A4);
        // 3、移动页面
        pdfDocument.movePage(2, 1);
        // 4、删除页面
        pdfDocument.removePage(1);
        // 5、获取第一页
        PdfPage firstPage = pdfDocument.getFirstPage();
        // 6、获取最后一页
        PdfPage lastPage = pdfDocument.getLastPage();
        // 7、获取指定页面
        PdfPage pdfPage = pdfDocument.getPage(2);
        // 关闭文档
        pdfDocument.close();
    }
}

1.6、添加空白页面

itext可以使用addNewPage()或者addPage()方法添加一个空白页面,除了这种方式之外,还有另外一种方式,那就是使用AreaBreak类,这个类表示一块内容区域,我们可以添加一个空白的内容区域,也可以达到添加空白页面的效果。

AreaBreakType有三个可选值,分别是:

  • NEXT_AREA:表示下一块内容区域。
  • NEXT_PAGE:表示下一个页面。
  • LAST_PAGE:表示最后一个页面,当在PDF最后一个页面使用这个属性,那么不会新增下一个空白页。
java 复制代码
package itext.demo.basic;

import com.itextpdf.kernel.geom.PageSize;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.AreaBreak;
import com.itextpdf.layout.property.AreaBreakType;

import java.io.FileNotFoundException;

/**
 * @version 1.0.0
 * @Date: 2023/7/19 15:31
 * @Author ZhuYouBin
 * @Description: 添加空白页面
 */
public class AddBlankPage {
    public static void main(String[] args) throws FileNotFoundException {
        // 1、创建PDF文档
        PdfDocument pdfDocument = new PdfDocument(new PdfWriter("D:\\itext2.pdf"));
        // 2、创建文档对象
        Document document = new Document(pdfDocument);
        // 3、添加空白页面,通过 AreaBreakType.NEXT_PAGE 设置下一个页面
        AreaBreak areaBreak = new AreaBreak(AreaBreakType.NEXT_PAGE);
        areaBreak.setPageSize(PageSize.A4); // 设置页面大小
        document.add(areaBreak);
        // 关闭文档
        document.close();
        pdfDocument.close();
    }
}

二、itext常见类和方法

2.1、PdfDocument类

PdfDocument表示PDF整个文件对象,该类提供了如下常见方法:

  • addPage():添加PdfPage页面对象。
  • addNewPage():添加PdfPage页面对象。
  • copyPagesTo():将指定PDF文档中的页面复制到另一个PDF文档里面。
  • movePage():移动页面。
  • removePage():删除页面。
  • addFont():添加字体。
  • addFileAttachment():在Document之上添加附件。
  • getNumberOfPages():获取页面数量。
  • getFirstPage():获取第一页。
  • getLastPage():获取最后一页。
  • getPage():获取指定页面。

2.2、PdfPage类

PdfPage类表示PDF文档中的一个页面对象,该类常见的方法有:

TODO

2.3、Document类

Document类表示PDF文档对象,PDF中的内容都是基于Document文档对象之上的,该类常见的方法有:

TODO

到此,itext操作PDF文档的基础方法就介绍完啦。

综上,这篇文章结束了,主要介绍itext7操作PDF文档之创建PDF文档、加载PDF文档、添加空白页、操作PDF页面、itext中的常见类及其方法。

相关推荐
一只花里胡哨的程序猿7 小时前
odoo打印pdf速度慢问题
pdf·odoo
灵海之森9 小时前
Python将md转html,转pdf
pdf
阿幸软件杂货间13 小时前
最新PDF版本!Acrobat Pro DC 2025,解压即用版
pdf·adobe acrobat·acrobat
星空的资源小屋15 小时前
网易UU远程,免费电脑远程控制软件
人工智能·python·pdf·电脑
会飞的小菠菜18 小时前
如何一次性将多个PPT幻灯片批量转换成PDF文档
pdf·powerpoint·ppt·批量·格式转换
somethingGoWay21 小时前
wpf .netcore 导出pdf文件
pdf·wpf·.netcore
小白电脑技术1 天前
PDF教程|如何把想要的网页保存下来?
pdf·电脑
我没想到原来他们都是一堆坏人1 天前
通过Gen AI SDK调用gemini 2.5 pro,单独上传pdf文件 | ai agent 开发笔记 2025.9.2 Day 2
ai·google·pdf·sdk·gemini
AI视觉网奇2 天前
麒麟系统 doc转pdf
linux·运维·pdf
CodeCraft Studio2 天前
国产化PDF处理控件Spire.PDF教程:如何在 Java 中通过模板生成 PDF
java·python·pdf·spire.pdf·java创建pdf·从html创建pdf