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

这篇具有很好参考价值的文章主要介绍了【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所需要的依赖。

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

1.3、创建PDF文档

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文档。

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页面,例如:添加空白页面、删除指定页面、移动页面、获取总页数等。

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最后一个页面使用这个属性,那么不会新增下一个空白页。
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中的常见类及其方法。文章来源地址https://www.toymoban.com/news/detail-588237.html

到了这里,关于【itext7】itext7操作PDF文档之创建PDF文档、加载PDF文档、添加空白页、操作PDF页面、itext中的常见类及其方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • itext5创建pdf表格及遇到的一些问题

    0. 核心依赖: 1. 设置页眉图片及下划线 通过PdfPageEventHelper事件可以动态的创建页眉,数据构建出多少页pdf就有多少页页眉 通过PdfPTable来构建下划线 通过new Chunk来显示图片,并通过ColumnText.showTextAligned来展示在页眉 详细见setSinglePageHead方法的注释,方正就是一顿调,知道合适

    2024年02月16日
    浏览(42)
  • Spire.PDF for .NET【文档操作】演示:合并 PDF 文件并添加页码

    需要合并 PDF 的原因有很多。例如,合并 PDF 文件允许您打印单个文件,而不是为打印机排队多个文档,组合相关文件通过减少要搜索和组织的文件数量来简化管理和存储多个文档的过程。在本文中,您将学习如何使用Spire.PDF for .NET将多个 PDF 文档合并为一个 PDF 文档,以及如

    2024年04月09日
    浏览(80)
  • 【PDFBox】PDFBox操作PDF文档之添加本地图片、添加网络图片、图片宽高自适应、图片水平垂直居中对齐

    这篇文章,主要介绍PDFBox操作PDF文档之添加本地图片、添加网络图片、图片宽高自适应、图片水平垂直居中对齐。 目录 一、PDFBox操作图片 1.1、添加本地图片 (1)案例代码 (2)运行效果 (3)方法介绍 1.2、添加网络图片 (1)案例代码 (2)运行效果 1.3、图片宽高自适应(

    2024年02月16日
    浏览(97)
  • Spire.PDF for .NET【文档操作】演示:动态创建 PDF 并将其发送到客户端浏览器

    可移植文档格式 (PDF) 是 Adobe 制定的独立规范的固定版式文档。它封装了完整的描述,包括文本字体、图形和显示它所需的其他信息。 Spire.PDF for .NET 是一款独立 PDF 控件,用于 .NET 程序中创建、编辑和操作 PDF 文档。使用 Spire.PDF 类库,开发人员可以新建一个 PDF 文档或者对现

    2024年04月25日
    浏览(46)
  • Git系列:运用Git创建空白分支进行项目相关文档管理

    项目管理过程中没有做好相关文档管理,比如需求,开发,测试等文档,需要对项目在过程中产生的相应文档进行管理,目前使用的是Git进行代码库管理,因此考虑通过Git进行相应的文档库管理。下面就是这次的一个考虑过程,供大家参考。 起初,考虑将代码和项目文档统一

    2024年02月10日
    浏览(48)
  • 浏览器-错误 未能加载 PDF 文档

    **问题现象:**使用浏览器chrome / firefox等时打开pdf文档报错,但排查后端接口数据返回正常 日志:错误 未能加载 PDF 文档 二:问题原因 浏览器安全配置阻止了非信任网站的跳转和弹窗等行为,无法加载PDF文档。现可以配置解决 三、Chrome配置办法: 1、在浏览器中输入 2、隐私

    2024年02月17日
    浏览(67)
  • Java给PDF文档添加水印信息

            在word生成pdf后,或者上传pdf文件,用户希望给pdf文档添加水印信息,具体代码如下   一. 首先pom中需要引入 核心代码如下,写在某个 service 下面 用到的实体类  方法测试

    2024年02月09日
    浏览(48)
  • 【附源码】解决pdf.js跨域并从url动态加载pdf文档

    当我们想用PDF.js从URL加载文档时,将会因遇到跨域问题而中断,且是因为会触发了PDF.js和浏览器的双重CORS block,这篇文章将会介绍: ①如何禁用pdf.js的跨域?②如何绕过浏览器的CORS加载URL文件?②如何使用PDF.js动态加载URL文件? Keywords: PDF.js , CORS , URL , 动态加载 , demo , 源码

    2023年04月08日
    浏览(36)
  • 如何通过C++ 给PDF文档添加文字水印

    因PDF文档具有较好的稳定性和兼容性,现在越来越多的合同、研究论文、报告等都采用PDF格式。为了进一步保护这些重要文档内容免受未经授权的复制或使用,我们可以添加水印以表明其状态、所有权或用途。针对工作中可能出现的在 C++ 应用程序中给 PDF 文档添加文字水印的

    2024年02月05日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包