关于使用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

相关文章

C#中checked关键字的使用小结

《C#中checked关键字的使用小结》本文主要介绍了C#中checked关键字的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录✅ 为什么需要checked? 问题:整数溢出是“静默China编程”的(默认)checked的三种用

C#中预处理器指令的使用小结

《C#中预处理器指令的使用小结》本文主要介绍了C#中预处理器指令的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录 第 1 名:#if/#else/#elif/#endif✅用途:条件编译(绝对最常用!) 典型场景: 示例

jdk1.8的Jenkins安装配置实践

《jdk1.8的Jenkins安装配置实践》Jenkins是一款流行的开源持续集成工具,支持自动构建、测试和部署,通过Jenkins,开发团队可以实现代码提交后自动进行构建、测试,并将构建结果分发到测... 目录Jenkins介绍Jenkins环境搭建Jenkins安装配置Jenkins插件安装Git安装配

SpringBoot的全局异常拦截实践过程

《SpringBoot的全局异常拦截实践过程》SpringBoot中使用@ControllerAdvice和@ExceptionHandler实现全局异常拦截,@RestControllerAdvic... 目录@RestControllerAdvice@ResponseStatus(...)@Except

mysql_mcp_server部署及应用实践案例

《mysql_mcp_server部署及应用实践案例》文章介绍了在CentOS7.5环境下部署MySQL_mcp_server的步骤,包括服务安装、配置和启动,还提供了一个基于Dify工作流的应用案例... 目录mysql_mcp_server部署及应用案例1. 服务安装1.1. 下载源码1.2. 创建独立

Mysql中RelayLog中继日志的使用

《Mysql中RelayLog中继日志的使用》MySQLRelayLog中继日志是主从复制架构中的核心组件,负责将从主库获取的Binlog事件暂存并应用到从库,本文就来详细的介绍一下RelayLog中... 目录一、什么是 Relay Log(中继日志)二、Relay Log 的工作流程三、Relay Lo

使用Redis实现会话管理的示例代码

《使用Redis实现会话管理的示例代码》文章介绍了如何使用Redis实现会话管理,包括会话的创建、读取、更新和删除操作,通过设置会话超时时间并重置,可以确保会话在用户持续活动期间不会过期,此外,展示了... 目录1. 会话管理的基本概念2. 使用Redis实现会话管理2.1 引入依赖2.2 会话管理基本操作

Springboot请求和响应相关注解及使用场景分析

《Springboot请求和响应相关注解及使用场景分析》本文介绍了SpringBoot中用于处理HTTP请求和构建HTTP响应的常用注解,包括@RequestMapping、@RequestParam... 目录1. 请求处理注解@RequestMapping@GetMapping, @PostMappin

springboot3.x使用@NacosValue无法获取配置信息的解决过程

《springboot3.x使用@NacosValue无法获取配置信息的解决过程》在SpringBoot3.x中升级Nacos依赖后,使用@NacosValue无法动态获取配置,通过引入SpringC... 目录一、python问题描述二、解决方案总结一、问题描述springboot从2android.x

SpringBoot整合AOP及使用案例实战

《SpringBoot整合AOP及使用案例实战》本文详细介绍了SpringAOP中的切入点表达式,重点讲解了execution表达式的语法和用法,通过案例实战,展示了AOP的基本使用、结合自定义注解以... 目录一、 引入依赖二、切入点表达式详解三、案例实战1. AOP基本使用2. AOP结合自定义注解3.