在信息系统应用中,报表处理一直起着比较重要的作用。Java报表制作中最常使用的是iText组件,它是一种生成PDF报表的Java组件。本文讨论两种形式的PDF报表处理,一种是通过程序对象生成整个PDF报表文档,另一种是利用制作好的含报表的PDF文档模板,通过在模板填写数据实现数据报表。1通过编程绘制实现报表的生成对于内容动态变化的表格,适合使用程序绘制办法进行生成处理。这类表格中数据项和数据均是动态存在的。1.1使用iText编程生成含报表的PDF文档的步骤[1](1)建立Document对象。Document是PDF文件所有元素的容器。Documentdocument=newDocument();(2)建立一个与Document对象关联的书写器(Writer)。通过书写器(Writer)对象可以将具体文档存盘成需要的格式,PDFWriter可以将文档保存为PDF文件。PDFWriter.getInstance(document,newFileOutputStream("my.PDF"));(3)打开文档。如:document.open();(4)向文档中添加内容。所有向文档添加的内容都是以对象为单位的,iText中用文本块(Chunk)、短语(Phrase)和段落(Paragraph)处理文本。document.add(newParagraph("HelloWorld"));//添加一个段落值得注意的是文本中汉字的显示,默认的iText字体设置不支持中文字体,需要下载远东字体包iTex-tAsian.jar,否则不能往PDF文档中输出中文字体[2]。(5)关闭文档。如:document.close();1.2表格绘制要在PDF文件中创建表格,iText提供了两个类Table和PdfPTable。Table类用来实现简单表格,PdfPTable类则用来实现比较复杂的表格。本文主要讨论PdfPTable类的应用。(1)创建PdfPTable对象创建PdfPTable对象只需要指定列数,不用指定行数。通常生成的表格默认以80%的比例显示在页面上。例如定义3列的表格,每列的宽度分别为15%、25%和60%,语句如下:float[]widths={15f,25f,60f};PdfPTabletable=newPdfPTable(widths);用setWidthPercentage(floatwidthPercentage)方法可设置表格的按百分比的宽度。而用setTotalWidth则可设置表格按像素计算的宽度。如果表格的内容超过了300px,表格的宽度会自动加长。用setLockedWidth(true)方法可锁定表格宽度。通过表格对象的系列方法可设置表格的边界以及对齐、填充方式。(2)添加单元格表格创建完成以后,可通过addCell(Objectobject)方法插入单元格元素(PdfPCell)。其中,Object对象可以是PdfPCell、String、Phrase、Image,也可以是PdfPTable对象本身,即在表格中嵌套一个表格。通过单元格的方法可设定单元格的列跨度、边框粗细、对齐方式、填充间隙等。(3)合并单元格为了实现某些特殊的表格形式,需要合并单元格。PdfPCell类提供了setColspan(intcolspan)方法用于合并横向单元格,参数colspan为合并的单元格数。但要合并纵向单元格需要使用嵌套表格的方法。将某个子表加入单元格,且安排单元格所占列数为子表中列数,则其行跨度也就是子表中的行数。由于实际编程时,经常出现各类

利用itext包实现java报表打印_利用iText包实现Java报表打印相关推荐

  1. java printerjob打印_利用PrinterJob类实现打印控制

    无论采用哪种语言来开发应用系统,打印功能总是少不了的.为了节省Java程序开发人员的工作量,在Java语言中专门提供了一个PrinterJob类来帮助开发人员实现打印控制的功能. 本文将给大家介绍一下 ...

  2. java jmap 分析_利用java虚拟机的工具jmap分析java内存情况

    有时候碰到性能问题,比如一个java application出现out of memory,出现内存泄漏的情况,再去修改bug可能会变得异常复杂,利用工具去分析整个java application 内 ...

  3. java 清空控制台_利用原生库和JNI(Java原生接口)实现H2数据库漏洞利用

    在H2数据库引擎中获取代码执行权限的技术早已是众所周知,但有个要求就是H2能够动态编译Java代码.而本文将向大家展示以前没有公开过的利用H2的方法,并且无需使用Java编译器,即通过原生库和JNI( ...

  4. java jstack 死锁_利用jstack检测死锁DeadLock

    首先,制造一个死锁程序如下: public class testJstack { final static Object obj_1 = new Object(); final static Obje ...

  5. java 堆栈信息_每天学习一个命令:jstack 打印 Java 进程堆栈信息

    Jstack 用于打印出给定的 java 进程 ID 或 core file 或远程调试服务的 Java 堆栈信息. 这里需要注意的是 Java 8 引入了 Java Mission Control, ...

  6. java invoke 泛型_利用Java反射机制和泛型,全自动解析json

    有啦这个简直,太爽啦, 利用Java 反射机制,利用Class 就可以得到 类的 变量  Field[] fields=cls.getDeclaredFields(); 还可以通过类中 的方法名字 去 ...

  7. java package 目录_修改jar包package目录结构操作方法

    本文将为您描述修改jar包package目录结构操作方法,具体操作过程: 开发中会遇到用第三方的jar包,有时候会出现不同的jar包,包名一致的情况,这就会引发运行时异常,找不到相应的jar包. 这种 ...

  8. java远控_利用Java实现远程控制

    利用 Java 实现远程控制 摘 要: 介绍了远程控制地原理 , 详细地叙述了利用 Java 实现远程控制软件地程序设计方法和要点 , 并给出了要点地具体实现方法 . 关键词: 远程控制: Java ...

  9. java 全双工服务器_利用Java实现串口全双工通讯_JAVA实例教程_IT部落

    本文介绍了一个简单的通过串口实现全双工通讯的Java类库,该类库大大的简化了对串口进行操作的过程 一个嵌入式系统通常需要通过串口与其主控系统进行全双工通讯,譬如一个流水线控制系统需要不断的接受从主控系 ...

  10. 大华java面试经验_大华面试(Java 基础)

    7-17 大华一面(java 基础) 1. 讲一下 java 和其他语言的区别,说下 java 的平台无关性,如何做到一次编译,到处运行 关于java 的特性,可以从 java 的优点来说. java ...

最新文章

  1. Redis源码简要分析
  2. 数据结构的一些命名英文全称
  3. JS笔记(20): JS中的同步编程和异步编程
  4. app inventor调用图像识别_+AI场景,3步懂图像识别产品
  5. WPF vs2015,vs2012 添加ArcObjects SDK
  6. 理性分散投资 收益袋袋平安
  7. 重磅开源!《30天吃掉那只 TensorFlow2.0 》(附下载)
  8. HTMLElement对象
  9. How to change context root of a dynamic web project in Eclipse
  10. IE8 Beta2 已经放出来了
  11. Autoware docker 环境安装
  12. 中原证券同花顺个股期权全真模拟交易客户端
  13. php网页框架模板,用PHP制作静态网站的模板框架(四)
  14. 大数据云计算实习报告
  15. Discuz安全之伪装后台,修改后台登陆页面信息
  16. Elasticsearch(ES)创建索引
  17. Hrbust2294修建传送门(尺取法)
  18. AHRS姿态解算说明(加速度+陀螺仪+磁力计原理及原始数据分析)
  19. 联想G40-70m黑苹果安装实录
  20. JavaScript实现数字金额小写转大写

热门文章

  1. CSP202009-1 称检测点查询(100分)【数学】
  2. QT Creator5.14软件的安装与使用(Win7与Ubuntu20.04)
  3. JSK-61 二进制加法【大数】
  4. 51Nod-1134 最长递增子序列【LIS】
  5. NUC1090 Goldbach's Conjecture【哥德巴赫猜想 】
  6. UVALive5461 UVA615 POJ1308 Is It A Tree?(解法二)【废除!!!】
  7. B00001 C语言动态存储分配空间作为数组
  8. sklearn.metrics —— 混淆矩阵及其绘制、Accuracy/Precision/Recall/F1-score
  9. C Tricks(十二)—— 获取字符数组的末尾元素
  10. CentOS hadoop 分布式集群的搭建