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

相关文章

sky-take-out项目中Redis的使用示例详解

《sky-take-out项目中Redis的使用示例详解》SpringCache是Spring的缓存抽象层,通过注解简化缓存管理,支持Redis等提供者,适用于方法结果缓存、更新和删除操作,但无法实现... 目录Spring Cache主要特性核心注解1.@Cacheable2.@CachePut3.@Ca

C#下Newtonsoft.Json的具体使用

《C#下Newtonsoft.Json的具体使用》Newtonsoft.Json是一个非常流行的C#JSON序列化和反序列化库,它可以方便地将C#对象转换为JSON格式,或者将JSON数据解析为C#对... 目录安装 Newtonsoft.json基本用法1. 序列化 C# 对象为 JSON2. 反序列化

深入浅出Spring中的@Autowired自动注入的工作原理及实践应用

《深入浅出Spring中的@Autowired自动注入的工作原理及实践应用》在Spring框架的学习旅程中,@Autowired无疑是一个高频出现却又让初学者头疼的注解,它看似简单,却蕴含着Sprin... 目录深入浅出Spring中的@Autowired:自动注入的奥秘什么是依赖注入?@Autowired

MySQL分库分表的实践示例

《MySQL分库分表的实践示例》MySQL分库分表适用于数据量大或并发压力高的场景,核心技术包括水平/垂直分片和分库,需应对分布式事务、跨库查询等挑战,通过中间件和解决方案实现,最佳实践为合理策略、备... 目录一、分库分表的触发条件1.1 数据量阈值1.2 并发压力二、分库分表的核心技术模块2.1 水平分

RabbitMQ 延时队列插件安装与使用示例详解(基于 Delayed Message Plugin)

《RabbitMQ延时队列插件安装与使用示例详解(基于DelayedMessagePlugin)》本文详解RabbitMQ通过安装rabbitmq_delayed_message_exchan... 目录 一、什么是 RabbitMQ 延时队列? 二、安装前准备✅ RabbitMQ 环境要求 三、安装延时队

Python ORM神器之SQLAlchemy基本使用完全指南

《PythonORM神器之SQLAlchemy基本使用完全指南》SQLAlchemy是Python主流ORM框架,通过对象化方式简化数据库操作,支持多数据库,提供引擎、会话、模型等核心组件,实现事务... 目录一、什么是SQLAlchemy?二、安装SQLAlchemy三、核心概念1. Engine(引擎)

Java Stream 并行流简介、使用与注意事项小结

《JavaStream并行流简介、使用与注意事项小结》Java8并行流基于StreamAPI,利用多核CPU提升计算密集型任务效率,但需注意线程安全、顺序不确定及线程池管理,可通过自定义线程池与C... 目录1. 并行流简介​特点:​2. 并行流的简单使用​示例:并行流的基本使用​3. 配合自定义线程池​示

基于C#实现PDF转图片的详细教程

《基于C#实现PDF转图片的详细教程》在数字化办公场景中,PDF文件的可视化处理需求日益增长,本文将围绕Spire.PDFfor.NET这一工具,详解如何通过C#将PDF转换为JPG、PNG等主流图片... 目录引言一、组件部署二、快速入门:PDF 转图片的核心 C# 代码三、分辨率设置 - 清晰度的决定因

Python自动化处理PDF文档的操作完整指南

《Python自动化处理PDF文档的操作完整指南》在办公自动化中,PDF文档处理是一项常见需求,本文将介绍如何使用Python实现PDF文档的自动化处理,感兴趣的小伙伴可以跟随小编一起学习一下... 目录使用pymupdf读写PDF文件基本概念安装pymupdf提取文本内容提取图像添加水印使用pdfplum

GO语言中函数命名返回值的使用

《GO语言中函数命名返回值的使用》在Go语言中,函数可以为其返回值指定名称,这被称为命名返回值或命名返回参数,这种特性可以使代码更清晰,特别是在返回多个值时,感兴趣的可以了解一下... 目录基本语法函数命名返回特点代码示例命名特点基本语法func functionName(parameters) (nam