【IT168 技术】iText是一个能够快速产生PDF文件的java类库。iText的java类对于那些要产生包含文本,表格,图形的只读文档是很有用的。它的类库尤其与java Servlet有很好的给合。使用iText与PDF能够使你正确的控制Servlet的输出。

一、前言

在企业的信息系统中,报表处理一直占比较重要的作用,Java组件——iText可以非常快速的生成PDF报表。iText是着名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、 Html文件转化为PDF文件。通过在服务器端使用Jsp或JavaBean生成PDF报表,客户端采用超级连接显示或下载得到生成的报表,这样就很好的解决了B/S系统的报表处理问题了。

二、iText简介

iText是着名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。

iText的安装非常方便,在http://www.lowagie.com/iText/download.html - download 网站上下载iText.jar文件后,只需要在系统的CLASSPATH中加入iText.jar的路径,在程序中就可以使用iText类库了。

三、建立第一个PDF文档

用iText生成PDF文档需要5个步骤:

①建立com.lowagie.text.Document对象的实例。

Document document=newDocument();

②建立一个书写器(Writer)与document对象关联,通过书写器(Writer)可以将文档写入到磁盘中。

PDFWriter.getInstance(document,newFileOutputStream("Helloworld.PDF"));

③打开文档。

document.open();

④向文档中添加内容。

document.add(newParagraph("Hello World"));

⑤关闭文档。

document.close();

通过上面的5个步骤,就能产生一个Helloworld.PDF的文件,文件内容为"Hello World"。

建立com.lowagie.text.Document对象的实例

com.lowagie.text.Document对象的构建函数有三个,分别是:publicDocument();publicDocument(Rectangle pageSize);publicDocument(Rectangle pageSize,intmarginLeft,intmarginRight,intmarginTop,intmarginBottom);

构建函数的参数pageSize是文档页面的大小,对于第一个构建函数,页面的大小为A4,同Document(PageSize.A4)的效果一样;对于第三个构建函数,参数marginLeft、marginRight、marginTop、marginBottom分别为左、右、上、下的页边距。

通过参数pageSize可以设定页面大小、面背景色、以及页面横向/纵向等属性。iText定义了A0-A10、AL、LETTER、 HALFLETTER、_11x17、LEDGER、NOTE、B0-B5、ARCH_A-ARCH_E、FLSA 和FLSE等纸张类型,也可以通过Rectangle pageSize = new Rectangle(144, 720);自定义纸张。通过Rectangle方法rotate()可以将页面设置成横向。

书写器(Writer)对象

一旦文档(document)对象建立好之后,需要建立一个或多个书写器(Writer)对象与之关联。通过书写器(Writer)对象可以将具体文档存盘成需要的格式,如com.lowagie.text.PDF.PDFWriter可以将文档存成PDF文件, com.lowagie.text.html.HtmlWriter可以将文档存成html文件。

设定文档属性

在文档打开之前,可以设定文档的标题、主题、作者、关键字、装订方式、创建者、生产者、创建日期等属性,调用的方法分别是:

publicbooleanaddTitle(Stringtitle)publicbooleanaddSubject(Stringsubject)publicbooleanaddKeywords(Stringkeywords)publicbooleanaddAuthor(Stringauthor)publicbooleanaddCreator(Stringcreator)publicbooleanaddProducer()publicbooleanaddCreationDate()publicbooleanaddHeader(Stringname,Stringcontent)

其中方法addHeader对于PDF文档无效,addHeader仅对html文档有效,用于添加文档的头信息。

当新的页面产生之前,可以设定页面的大小、书签、脚注(HeaderFooter)等信息,调用的方法是:

publicbooleansetPageSize(Rectangle pageSize)publicbooleanadd(Watermark watermark)publicvoid removeWatermark()publicvoid setHeader(HeaderFooter header)publicvoid resetHeader()publicvoid setFooter(HeaderFooter footer)publicvoid resetFooter()publicvoid resetPageCount()publicvoid setPageCount(intpageN)

如果要设定第一页的页面属性,这些方法必须在文档打开之前调用。

对于PDF文档,iText还提供了文档的显示属性,通过调用书写器的setViewerPreferences方法可以控制文档打开时Acrobat Reader的显示属性,如是否单页显示、是否全屏显示、是否隐藏状态条等属性。

另外,iText也提供了对PDF文件的安全保护,通过书写器(Writer)的setEncryption方法,可以设定文档的用户口令、只读、可打印等属性。

添加文档内容

所有向文档添加的内容都是以对象为单位的,如Phrase、Paragraph、Table、Graphic对象等。比较常用的是段落(Paragraph)对象,用于向文档中添加一段文字。

java itext 设计器_使用Java组件itext 生成pdf的介绍相关推荐

  1. java jtable设置列宽_【Java】JTable组件的构造函数和设置列宽

    使用JTable组件 类层次结构图: java.lang.Object --java.awt.Component --java.awt.Container --javax.swing.JCompone ...

  2. java项目----教务管理系统_基于Java的教务管理系统

    java项目----教务管理系统_基于Java的教务管理系统 2022-04-22 18:18·java基础 最近为客户开发了一套学校用教务管理系统,主要实现学生.课程.老师.选课等相关的信息化管理功 ...

  3. Java 批量导出PPT为图片,并合并生成PDF

    Java 批量导出PPT为图片,并合并生成PDF 最近有小伙伴需要把PPT打印,但苦于PPT太多,浪费纸张,所以特别写了这个合并多张PPT到一张A4纸上并生成PDF方便打印的程序: 前期准备 把PPT ...

  4. java 调用.net类库_通过COM组件方式实现java调用C#写的DLL文件

    通过Java调用C#的DLL文件实现.网上资料很多,自己整合总结了一下,做个备忘. 一.C#写com组件 开发环境 VS2013 1.新建工程:TestDemo(类库项目)     //根据自己需要取 ...

  5. java课设电子门禁_中控门禁pullSdk Java demo 中控智慧门禁系统 - 下载 - 搜珍网

    压缩包 : pullsdkdemo (2).zip 列表 pullsdkdemo/ pullsdkdemo/.idea/ pullsdkdemo/.idea/compiler.xml pullsdkd ...

  6. java界面设计器_java 图形界面设计制作计算器

    在NETBEANS里写的我的代码如下:JSQ:packagewe;importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;publicc ...

  7. java 不重启部署_编译Java类后不重启Tomcat有两种方式:热部署、热加载

    不重启Tomcat有两种方式:热部署.热加载 热部署:容器状况在运行时重新部署整个项目.这类环境下一般整个内存会清空,重新加载,这类方式 有可能会造成sessin丢失等环境.tomcat 6确实可以热 ...

  8. java ee开发环境_设置Java EE 6开发环境

    java ee开发环境 本教程简要说明了如何设置典型的环境来开发基于Java EE 6的应用程序. 除了可以正常工作的Windows XP客户端具有足够的CPU能力和内存外,本教程没有其他先决条件. ...

  9. 快速开发工作流_03_集成在线流程设计器_内置用户免登录

    接上一篇:快速开发工作流_02_集成在线流程设计器 https://gblfy.blog.csdn.net/article/details/103676784 文章目录 八.内置用户免登录 8.1. ...

最新文章

  1. 背包问题 输出方案、输出字典序最小方案、可行方案数、最优方案总数
  2. 在MAC平台下使用Eclipse出现了中文乱码
  3. 关于c++中的Debug以及runtime_error之segment_fault
  4. decisiontreeregressor_机器学习算法-Decision Tree
  5. Chrome调试大全--转载
  6. STM32F0308DISCOVERY探索套件
  7. vs2003打开项目错误
  8. 网站页首可关闭广告条
  9. 如何将Java工程导出成可以执行的jar
  10. IBM 的大型机 z Systems 引入 Go 语言
  11. Android 抖动提示动画
  12. win10 家庭版系统,创建用户(users\account\ 中,文件的「所有者」属性)
  13. 抖音昵称html,抖音名字600个
  14. halcon显示坐标_机器视觉之halcon入门(10)-一文弄懂halcon例程:color_fuse.hdev
  15. js分割字符串变成数组
  16. 弹性布局和AndroidAutoSize屏幕适配
  17. 【2019-2020春学期】数据库作业13:SQL练习8 - CHECK / CONSTRAINT / TRIGGER / PROCEDURE/ FUNCTION
  18. Axure 实现问卷调查(带计时器功能)
  19. 华为SNS交换机(OEM博科FC交换机)configupload无法使用ftp协议处理方法
  20. 【数据库系统工程师】6.4数据仓库和数据挖掘基础知识

热门文章

  1. 解决无线网卡 RTL8723BE ubuntu环境下不稳定情况
  2. zabbix_监控_进程
  3. 安卓模拟器BlueStacks 安装使用教程(图解)
  4. 批量获取成员机管理员组用户信息
  5. 俄罗斯独特的职业***文化
  6. Jsp实现图书馆借阅管理系统
  7. KeyValueTextInputFormat使用案例
  8. 二叉树的遍历(包括递归和非递归方法)
  9. 求你了,别再用 pip 那乌龟的速度去安装库了!
  10. [Python]小甲鱼Python视频第32课(except)课后题及参考解答