关于使用itext导出PDF的具体实践

2024-09-04 12:38

本文主要是介绍关于使用itext导出PDF的具体实践,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

关于使用itext导出PDF的具体实践

  • 博客分类: 
  • JAVA应用
  • itext
java itext
对于JAVA导出PDF文档查找了一下相关内容,发现网上大多数的关于itext导出PDF的文档均是com.lowagie.itext而目前该Api高版本已经使用com.itextpdf.itext公共JAR包,因此在这边记录下关于使用新版本itext导出PDF的实际运用。 

    个人对于ITEXT的了解而言,主要分为5个步骤: 

a、建立Documnet对象;
Java代码   收藏代码
  1. Document document = new Document();  
b、建立读写器(PDFWriter)并与Document对象关联 

 
Java代码   收藏代码
  1. PdfWriter.getInstance(document, new FileOutputStream("d://test6.pdf"));  
c、打开文档; 

   document.open(); 

d、写内容进入文档; 

  
Java代码   收藏代码
  1. document.add(new Paragraph("test"));  
e、关闭文档; 

  
Java代码   收藏代码
  1. document.close();  

这是一个相对简单的DPF导出。 


下面对于写内容进入文档部分进行稍详细的几记录: 
1、插入表格 
2、插入图片 
3、插入中文字体不识别问题 

插入表格主要分表头与表内容,相当于插入两张表来实现。首先新建PDFPTABLE对象。 
Java代码   收藏代码
  1. PdfPTable table = new Table();  
  2.   
  3. PdfPCell cell = new PdfPCell(),  
循环数据插入到每个cell 
Java代码   收藏代码
  1. for(User user ;list){  
  2. cell.setPhrase(new Paragraph(user.getName));  
  3. table.addCell(cell);//注:每个cell加入内容时及时加入到table中,否则cell内容将会被覆盖  

插入图片:简单的处理可以使用PdfPCell, 
在新建PdfPCell对象存在new PdfPCell(Image image)构造器或者直接使用
Java代码   收藏代码
  1. PdfPtable.addCell(Image image),eg:table.addCell(Image. getInstance( "d://test.jpg"));  


中文问题,由于itext不支持中文的显示,因此需要使用到itext- asian字体转换API, 
通过Font对象来设置字体 
Java代码   收藏代码
  1. new Font(BaseFont. createFont( "STSong-Light""UniGB-UCS2-H" ,BaseFont. NOT_EMBEDDED), 12, Font. NORMAL )  

附简单的代码文件若有错误,请各位斧正。 
以下是需要使用的maven包 
Java代码   收藏代码
  1. <dependency>  
  2.     <groupId>com.itextpdf</groupId>  
  3.     <artifactId>itextpdf</artifactId>  
  4.     <version>5.5.1</version>  
  5. </dependency>  
  6. <dependency>  
  7.     <groupId>com.itextpdf</groupId>  
  8.     <artifactId>itext-asian</artifactId>  
  9.     <version>5.2.0</version>  
  10. </dependency>  
  • simpleDemo.rar (2.1 KB)
  • 下载次数: 10

这篇关于关于使用itext导出PDF的具体实践的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1136050

相关文章

Java中流式并行操作parallelStream的原理和使用方法

《Java中流式并行操作parallelStream的原理和使用方法》本文详细介绍了Java中的并行流(parallelStream)的原理、正确使用方法以及在实际业务中的应用案例,并指出在使用并行流... 目录Java中流式并行操作parallelStream0. 问题的产生1. 什么是parallelS

Linux join命令的使用及说明

《Linuxjoin命令的使用及说明》`join`命令用于在Linux中按字段将两个文件进行连接,类似于SQL的JOIN,它需要两个文件按用于匹配的字段排序,并且第一个文件的换行符必须是LF,`jo... 目录一. 基本语法二. 数据准备三. 指定文件的连接key四.-a输出指定文件的所有行五.-o指定输出

Linux jq命令的使用解读

《Linuxjq命令的使用解读》jq是一个强大的命令行工具,用于处理JSON数据,它可以用来查看、过滤、修改、格式化JSON数据,通过使用各种选项和过滤器,可以实现复杂的JSON处理任务... 目录一. 简介二. 选项2.1.2.2-c2.3-r2.4-R三. 字段提取3.1 普通字段3.2 数组字段四.

Linux kill正在执行的后台任务 kill进程组使用详解

《Linuxkill正在执行的后台任务kill进程组使用详解》文章介绍了两个脚本的功能和区别,以及执行这些脚本时遇到的进程管理问题,通过查看进程树、使用`kill`命令和`lsof`命令,分析了子... 目录零. 用到的命令一. 待执行的脚本二. 执行含子进程的脚本,并kill2.1 进程查看2.2 遇到的

JDK21对虚拟线程的几种用法实践指南

《JDK21对虚拟线程的几种用法实践指南》虚拟线程是Java中的一种轻量级线程,由JVM管理,特别适合于I/O密集型任务,:本文主要介绍JDK21对虚拟线程的几种用法,文中通过代码介绍的非常详细,... 目录一、参考官方文档二、什么是虚拟线程三、几种用法1、Thread.ofVirtual().start(

详解SpringBoot+Ehcache使用示例

《详解SpringBoot+Ehcache使用示例》本文介绍了SpringBoot中配置Ehcache、自定义get/set方式,并实际使用缓存的过程,文中通过示例代码介绍的非常详细,对大家的学习或者... 目录摘要概念内存与磁盘持久化存储:配置灵活性:编码示例引入依赖:配置ehcache.XML文件:配置

Java 虚拟线程的创建与使用深度解析

《Java虚拟线程的创建与使用深度解析》虚拟线程是Java19中以预览特性形式引入,Java21起正式发布的轻量级线程,本文给大家介绍Java虚拟线程的创建与使用,感兴趣的朋友一起看看吧... 目录一、虚拟线程简介1.1 什么是虚拟线程?1.2 为什么需要虚拟线程?二、虚拟线程与平台线程对比代码对比示例:三

从基础到高级详解Go语言中错误处理的实践指南

《从基础到高级详解Go语言中错误处理的实践指南》Go语言采用了一种独特而明确的错误处理哲学,与其他主流编程语言形成鲜明对比,本文将为大家详细介绍Go语言中错误处理详细方法,希望对大家有所帮助... 目录1 Go 错误处理哲学与核心机制1.1 错误接口设计1.2 错误与异常的区别2 错误创建与检查2.1 基础

k8s按需创建PV和使用PVC详解

《k8s按需创建PV和使用PVC详解》Kubernetes中,PV和PVC用于管理持久存储,StorageClass实现动态PV分配,PVC声明存储需求并绑定PV,通过kubectl验证状态,注意回收... 目录1.按需创建 PV(使用 StorageClass)创建 StorageClass2.创建 PV

Redis 基本数据类型和使用详解

《Redis基本数据类型和使用详解》String是Redis最基本的数据类型,一个键对应一个值,它的功能十分强大,可以存储字符串、整数、浮点数等多种数据格式,本文给大家介绍Redis基本数据类型和... 目录一、Redis 入门介绍二、Redis 的五大基本数据类型2.1 String 类型2.2 Hash