【itext7】itext7操作PDF文档之添加段落文本内容、添加List列表、添加Image图片、添加Table表格

这篇具有很好参考价值的文章主要介绍了【itext7】itext7操作PDF文档之添加段落文本内容、添加List列表、添加Image图片、添加Table表格。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

这篇文章,主要介绍itext7操作PDF文档之添加段落文本内容、添加List列表、添加Image图片、添加Table表格。

目录

一、itext7操作PDF内容

1.1、添加段落文本内容

1.2、添加列表内容

1.3、添加图片

1.4、添加表格

(1)列宽采用点单位(pt点单位)

(2)采用百分比单位(%百分比)


一、itext7操作PDF内容

1.1、添加段落文本内容

itext中将文本抽象为一个Text对象,这个Text属于叶子元素,不能直接添加到Document里面,必须先放入布局元素(layout元素)里面,然后再将布局元素加入到Document中。itext中采用Paragraph类表示段落,这是对一个段落文字的描述,例如:将Text对象先添加到Paragraph段落对象中,然后将Paragraph段落加入到Document里面。


package itext.demo.basic;

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.element.Paragraph;
import com.itextpdf.layout.element.Text;

import java.io.FileNotFoundException;

/**
 * @version 1.0.0
 * @Date: 2023/7/19 15:40
 * @Author ZhuYouBin
 * @Description: 文本内容操作
 */
public class TextOperation {
    public static void main(String[] args) throws FileNotFoundException {
        // 创建PDF文档
        PdfDocument pdfDocument = new PdfDocument(new PdfWriter("D:\\itext-content.pdf"));
        // 创建文档对象
        Document document = new Document(pdfDocument);
        // 创建文本对象
        Text text = new Text("hello world");
        // 创建段落
        Paragraph paragraph = new Paragraph();
        paragraph.add(text);
        // 将段落添加到文档上面
        document.add(paragraph);
        // 关闭文档
        document.close();
        pdfDocument.close();
    }
}

运行结果如下所示:

【itext7】itext7操作PDF文档之添加段落文本内容、添加List列表、添加Image图片、添加Table表格,【WPSP笔记】,itext7,itext操作pdf,Java操作PDF文件,itext操作图片,itext7添加表格

1.2、添加列表内容

itext中使用List类表示列表对象,列表可以有序列表、无序列表,列表中的每一项使用ListItem类表示,一个List列表可以包含多个ListItem列表项,List列表可以设置缩进、列表项的符号等。


package itext.demo.basic.text;

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

import java.io.FileNotFoundException;

/**
 * @version 1.0.0
 * @Date: 2023/7/19 15:40
 * @Author ZhuYouBin
 * @Description: 添加列表内容
 */
public class TextOperation {
    public static void main(String[] args) throws FileNotFoundException {
        // 创建PDF文档
        PdfDocument pdfDocument = new PdfDocument(new PdfWriter("D:\\itext-content.pdf"));
        // 创建文档对象
        Document document = new Document(pdfDocument);
        // 创建List列表对象
        List list = new List();
        list.setSymbolIndent(12); // 设置列表项和符号之间的缩进距离
        list.setListSymbol("@"); // 设置列表项的符号
        // 创建列表项
        for (int i = 0; i < 5; i++) {
            list.add(new ListItem("this is 00" + i + " item。"));
        }
        // 将List列表添加到文档上面
        document.add(list);
        // 关闭文档
        document.close();
        pdfDocument.close();
    }
}

运行结果如下所示:

【itext7】itext7操作PDF文档之添加段落文本内容、添加List列表、添加Image图片、添加Table表格,【WPSP笔记】,itext7,itext操作pdf,Java操作PDF文件,itext操作图片,itext7添加表格

1.3、添加图片

itext中将图片抽象成一个Image对象,图片可以从URL、File等来源进行创建,Image类中的构造方法是protected修饰的,所以不能直接使用new关键字进行创建对象,可以使用itext中提供的ImageDataFactory工具类,这个类中提供了一个create()方法可以根据不同的来源创建图片对象。


package itext.demo.basic.text;

import com.itextpdf.io.image.ImageDataFactory;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Image;
import java.net.URL;

/**
 * @version 1.0.0
 * @Date: 2023/7/19 15:40
 * @Author ZhuYouBin
 * @Description: 添加图片
 */
public class TextOperation {
    public static void main(String[] args) throws Exception {
        // 创建PDF文档
        PdfDocument pdfDocument = new PdfDocument(new PdfWriter("D:\\itext-content.pdf"));
        // 创建文档对象
        Document document = new Document(pdfDocument);
        // 创建图片对象
        URL url = new URL("https://www.toopic.cn/public/uploads/small/1658043292312165804329268.png");
        Image image = new Image(ImageDataFactory.create(url));
        image.setAutoScale(true); // 设置宽高字段缩放

        URL url2 = new URL("https://www.toopic.cn/public/uploads/small/1658043887555165804388773.jpg");
        Image image2 = new Image(ImageDataFactory.create(url2));
        image2.setAutoScale(true); // 设置宽高字段缩放
        // 将图片添加到文档上面
        document.add(image);
        document.add(image2);
        // 关闭文档
        document.close();
        pdfDocument.close();
    }
}

运行结果如下所示(添加两张图片的效果):

【itext7】itext7操作PDF文档之添加段落文本内容、添加List列表、添加Image图片、添加Table表格,【WPSP笔记】,itext7,itext操作pdf,Java操作PDF文件,itext操作图片,itext7添加表格

1.4、添加表格

itext中将表格抽象成了Table类,表格就是一张二维表,由行和列组成,其中每一行每一列都是一个单元格,单元格使用Cell类表示。创建Table对象的时候,对应的构造方法必须指定表格中每一个单元格的宽度,列宽度的单位可以是pt、也可以设置百分比,推荐使用百分比单位。

(1)列宽采用点单位(pt点单位)


package itext.demo.basic.text;

import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Cell;
import com.itextpdf.layout.element.Div;
import com.itextpdf.layout.element.Paragraph;
import com.itextpdf.layout.element.Table;
import com.itextpdf.layout.property.UnitValue;

/**
 * @version 1.0.0
 * @Date: 2023/7/19 15:40
 * @Author ZhuYouBin
 * @Description: 添加表格【pt单位】
 */
public class TableDemo {
    public static void main(String[] args) throws Exception {
        // 创建PDF文档
        PdfDocument pdfDocument = new PdfDocument(new PdfWriter("D:\\itext-table.pdf"));
        // 创建文档对象
        Document document = new Document(pdfDocument);
        // 创建表格
        float[] columnWidths = new float[] {
                30, 50, 60, 20
        };
        Table table = new Table(columnWidths);
        // 设置表格宽度100%
        table.setWidth(UnitValue.createPercentValue(100));
        // 设置表格标题
        table.setCaption(new Div().add(new Paragraph("this is a caption of table")));
        // 添加表头单元格,上面设置了四列,超过四列会自动换行
        table.addHeaderCell(new Cell().add(new Paragraph("header-cell")));
        table.addHeaderCell(new Cell().add(new Paragraph("header-cell")));
        table.addHeaderCell(new Cell().add(new Paragraph("header-cell")));
        table.addHeaderCell(new Cell().add(new Paragraph("header-cell")));
        // 添加普通单元格
        table.addCell(new Cell().add(new Paragraph("cell")));
        table.addCell(new Cell().add(new Paragraph("cell")));
        table.addCell(new Cell().add(new Paragraph("cell")));
        table.addCell(new Cell().add(new Paragraph("cell")));
        // 添加表尾单元格
        table.addFooterCell(new Cell().add(new Paragraph("footer-cell")));
        table.addFooterCell(new Cell().add(new Paragraph("footer-cell")));
        table.addFooterCell(new Cell().add(new Paragraph("footer-cell")));
        table.addFooterCell(new Cell().add(new Paragraph("footer-cell")));
        // 添加表格到PDF文档
        document.add(table);
        // 关闭文档
        document.close();
        pdfDocument.close();
    }
}

运行结果如下所示:

【itext7】itext7操作PDF文档之添加段落文本内容、添加List列表、添加Image图片、添加Table表格,【WPSP笔记】,itext7,itext操作pdf,Java操作PDF文件,itext操作图片,itext7添加表格

(2)采用百分比单位(%百分比)


package itext.demo.basic.text;

import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Cell;
import com.itextpdf.layout.element.Div;
import com.itextpdf.layout.element.Paragraph;
import com.itextpdf.layout.element.Table;
import com.itextpdf.layout.property.UnitValue;

/**
 * @version 1.0.0
 * @Date: 2023/7/19 15:40
 * @Author ZhuYouBin
 * @Description: 添加表格【百分比单位】
 */
public class TableDemo {
    public static void main(String[] args) throws Exception {
        // 创建PDF文档
        PdfDocument pdfDocument = new PdfDocument(new PdfWriter("D:\\itext-table.pdf"));
        // 创建文档对象
        Document document = new Document(pdfDocument);
        // 创建百分比单位的列宽度
        UnitValue[] columnWidths = new UnitValue[] {
                UnitValue.createPercentValue(25),
                UnitValue.createPercentValue(25),
                UnitValue.createPercentValue(25),
                UnitValue.createPercentValue(25)
        };
        Table table = new Table(columnWidths);
        // 设置表格宽度100%
        table.setWidth(UnitValue.createPercentValue(100));
        // 设置表格标题
        table.setCaption(new Div().add(new Paragraph("this is a caption of table")));
        // 添加表头单元格,上面设置了四列,超过四列会自动换行
        table.addHeaderCell(new Cell().add(new Paragraph("header-cell")));
        table.addHeaderCell(new Cell().add(new Paragraph("header-cell")));
        table.addHeaderCell(new Cell().add(new Paragraph("header-cell")));
        table.addHeaderCell(new Cell().add(new Paragraph("header-cell")));
        // 添加普通单元格
        table.addCell(new Cell().add(new Paragraph("cell")));
        table.addCell(new Cell().add(new Paragraph("cell")));
        table.addCell(new Cell().add(new Paragraph("cell")));
        table.addCell(new Cell().add(new Paragraph("cell")));
        // 添加表尾单元格
        table.addFooterCell(new Cell().add(new Paragraph("footer-cell")));
        table.addFooterCell(new Cell().add(new Paragraph("footer-cell")));
        table.addFooterCell(new Cell().add(new Paragraph("footer-cell")));
        table.addFooterCell(new Cell().add(new Paragraph("footer-cell")));
        // 添加表格到PDF文档
        document.add(table);
        // 关闭文档
        document.close();
        pdfDocument.close();
    }
}

运行结果如下所示:

【itext7】itext7操作PDF文档之添加段落文本内容、添加List列表、添加Image图片、添加Table表格,【WPSP笔记】,itext7,itext操作pdf,Java操作PDF文件,itext操作图片,itext7添加表格

到此,itext操作PDF内容之添加段落、列表、图片、表格就介绍完啦。

综上,这篇文章结束了,主要介绍itext7操作PDF文档之添加段落文本内容、添加List列表、添加Image图片、添加Table表格。文章来源地址https://www.toymoban.com/news/detail-604939.html

到了这里,关于【itext7】itext7操作PDF文档之添加段落文本内容、添加List列表、添加Image图片、添加Table表格的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • SpringBoot Thymeleaf iText7 生成 PDF(2023/08/29)

    近期在项目种遇到了实时生成复杂 PDF 的需求,经过一番调研和测试,最终选择了采用 Thymeleaf 和 iText7 来实现需求,本文将详细介绍实现过程。 通过 Thymeleaf 渲染生成需要的页面内容; 通过 iText7 html2pdf 库将 Thymeleaf 渲染的结果转换成 PDF; 将 PDF 内容写入到接口输出流中返回

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

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

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

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

    2024年02月16日
    浏览(57)
  • 【python-docx】文本操作(段落、run、标题、首行缩进、段前段后、多倍行距、对齐方式)

    1.概念 块级元素(block-level) 是指作为一个整体的元素,典型的是段落(paragraph)。 行内元素(inline) ,你可以把它理解为一部分块级元素,即一个块级元素包含一个或多个行内元素,典型的是run对象(我也不知道run应该翻译成什么)。 举个例子,你在Word回车换行开始输入

    2024年02月11日
    浏览(36)
  • 怎么在PDF添加文本框?6种快速向PDF添加文字教程

    有时您可能希望填写表格或在 PDF 文件中留下评论。这需要您将文本框和文本添加到 PDF。文本框是一个文本字段,您可以在其中键入文本。但是,除非您使用专用的 PDF 编辑器,否则编辑 PDF 文件具有挑战性。了解正确的 PDF 工具和将文本框添加到 PDF的简单方法可以帮助您高效

    2024年01月23日
    浏览(29)
  • 100天精通Python丨办公效率篇 —— 12、Python自动化操作 office-word(word转pdf、转docx、段落、表格、标题、页面、格式)

    本文收录于 《100天精通Python专栏 - 快速入门到黑科技》专栏 ,是由 CSDN 内容合伙人丨全站排名 Top 4 的硬核博主 不吃西红柿 倾力打造。 基础知识篇以理论知识为主 ,旨在帮助没有语言基础的小伙伴,学习我整理成体系的精华知识,快速入门构建起知识框架; 黑科技应用篇

    2023年04月18日
    浏览(40)
  • PDF 文档处理:使用 Java 对比 PDF 找出内容差异

    不论是在团队写作还是在个人工作中,PDF 文档往往会经过多次修订和更新。掌握 PDF 文档内容的变化对于管理文档有极大的帮助。通过对比 PDF 文档,用户可以快速找出文档增加、删除和修改的内容,更好地了解文档的演变过程,轻松地管理文档。本文将介绍如何通过 Java 程

    2024年02月08日
    浏览(44)
  • PDF或图片文档内容识别、关系抽取

            自动识别法院和公积金中心的文书(调解书、判决书、裁定书、通知书)扫描件(PDF或图片),获取特定结构的数据,自动对比。抽取结构如: 执行 搭建label studio标记,标记完成后导出JSON。 Label Studio JSON转Doccano JSON 构造数据集 工具,命名为utils.py   训练  模型部

    2024年02月08日
    浏览(34)
  • 用python提取PDF中各类文本内容的方法

    从PDF文档中提取信息,是很多类似RAG这样的应用第一步要处理的事情,这里需要做好三件事: 提取出来的文本要保持信息完整性,也就是准确性 提出的结果需要有附加信息,也就是要保存元数据 提取过程要完成自动化,也就是流程化 然而,在我们开始之前,我们需要指定目

    2024年02月01日
    浏览(29)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包