利用java itext.jar生成pdf文件

上传人:第*** 文档编号:32827777 上传时间:2018-02-12 格式:DOC 页数:8 大小:47.50KB
返回 下载 相关 举报
利用java itext.jar生成pdf文件_第1页
第1页 / 共8页
利用java itext.jar生成pdf文件_第2页
第2页 / 共8页
利用java itext.jar生成pdf文件_第3页
第3页 / 共8页
利用java itext.jar生成pdf文件_第4页
第4页 / 共8页
利用java itext.jar生成pdf文件_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《利用java itext.jar生成pdf文件》由会员分享,可在线阅读,更多相关《利用java itext.jar生成pdf文件(8页珍藏版)》请在金锄头文库上搜索。

1、利用 java iText.jar 生成 PDF 文件博客分类: Java 编程Java 应用服务器 编程 JSP 企业应用一、前言在企业的信息系统中,报表处理一直占比较重要的作用,本文将介绍一种生成 PDF 报表的 Java 组件- iText。通过在服务器端使用 Jsp 或 JavaBean 生成 PDF 报表,客户端采用超级连接显示或下载得到生成的报表,这样就很好的解决了 B/S 系统的报表处理问题。二、iText 简介iText 是著名的开放源码的站点 sourceforge 一个项目,是用于生成 PDF文档的一个 java 类库。通过 iText 不仅可以生成 PDF 或 rtf 的

2、文档,而且可以将 XML、Html 文件转化为 PDF 文件。iText 的安装非常方便,在 - download 网站上下载 iText.jar 文件后,只需要在系统的 CLASSPATH 中加入 iText.jar 的路径,在程序中就可以使用 iText类库了。 http:/ PDF 文档用 iText 生成 PDF 文档需要 5 个步骤:建立 com.lowagie.text.Document 对象的实例。 Document document = new Document();建立一个书写器(Writer) 与 document 对象关联,通过书写器 (Writer)可以将文档写入到磁盘

3、中。PDFWriter.getInstance(document, new FileOutputStream(Helloworld.PDF);打开文档。document.open();向文档中添加内容。document.add(new Paragraph(Hello World);关闭文档。document.close();通过上面的 5 个步骤,就能产生一个 Helloworld.PDF 的文件,文件内容为Hello World。建立 com.lowagie.text.Document 对象的实例com.lowagie.text.Document 对象的构建函数有三个,分别是:public

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

5、通过参数 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)对象与之关联。通过书

6、写器(Writer) 对象可以将具体文档存盘成需要的格式,如com.lowagie.text.PDF.PDFWriter 可以将文档存成 PDF 文件,com.lowagie.text.html.HtmlWriter 可以将文档存成 html 文件。设定文档属性在文档打开之前,可以设定文档的标题、主题、作者、关键字、装订方式、创建者、生产者、创建日期等属性,调用的方法分别是:public boolean addTitle(String title) public boolean addSubject(String subject) public boolean addKeywords(Stri

7、ng keywords) public boolean addAuthor(String author) public boolean addCreator(String creator) public boolean addProducer() public boolean addCreationDate() public boolean addHeader(String name, String content)其中方法 addHeader 对于 PDF 文档无效,addHeader 仅对 html 文档有效,用于添加文档的头信息。 当新的页面产生之前,可以设定页面的大小、书签、脚注(He

8、aderFooter)等信息,调用的方法是:public boolean setPageSize(Rectangle pageSize) public boolean add(Watermark watermark) public void removeWatermark() public void setHeader(HeaderFooter header) public void resetHeader() public void setFooter(HeaderFooter footer) public void resetFooter() public void resetPageCo

9、unt() public void setPageCount(int pageN) 如果要设定第一页的页面属性,这些方法必须在文档打开之前调用。对于 PDF 文档,iText 还提供了文档的显示属性,通过调用书写器的setViewerPreferences 方法可以控制文档打开时 Acrobat Reader 的显示属性,如是否单页显示、是否全屏显示、是否隐藏状态条等属性。另外,iText 也提供了对 PDF 文件的安全保护,通过书写器(Writer)的setEncryption 方法,可以设定文档的用户口令、只读、可打印等属性。添加文档内容所有向文档添加的内容都是以对象为单位的,如Phras

10、e、Paragraph、Table 、Graphic 对象等。比较常用的是段落(Paragraph)对象,用于向文档中添加一段文字。 四、文本处理iText 中用文本块 (Chunk)、短语(Phrase)和段落(paragraph) 处理文本。 文本块(Chunk)是处理文本的最小单位,有一串带格式(包括字体、颜色、大小)的字符串组成。如以下代码就是产生一个字体为 HELVETICA、大小为 10、带下划线的字符串:Chunk chunk1 = new Chunk(This text is underlined, FontFactory.getFont(FontFactory.HELVETI

11、CA, 12, Font.UNDERLINE); 短语(Phrase)由一个或多个文本块(Chunk)组成,短语(Phrase)也可以设定字体,但对于其中以设定过字体的文本块(Chunk)无效。通过短语(Phrase)成员函数 add 可以将一个文本块(Chunk) 加到短语(Phrase)中,如:phrase6.add(chunk);段落(paragraph) 由一个或多个文本块 (Chunk)或短语(Phrase) 组成,相当于 WORD 文档中的段落概念,同样可以设定段落的字体大小、颜色等属性。另外也可以设定段落的首行缩进、对齐方式(左对齐、右对齐、居中对齐)。通过函数 setAlign

12、ment 可以设定段落的对齐方式, setAlignment 的参数 1 为居中对齐、2 为右对齐、 3 为左对齐,默认为左对齐。五、表格处理iText 中处理 表格的类为:com.lowagie.text.Table 和com.lowagie.text.PDF.PDFPTable,对于比较简单的表格处理可以用com.lowagie.text.Table,但是如果要处理复杂的表格,这就需要com.lowagie.text.PDF.PDFPTable 进行处理。这里就类com.lowagie.text.Table 进行说明。类 com.lowagie.text.Table 的构造函数有三个:Ta

13、ble (int columns) Table(int columns, int rows) Table(Properties attributes)参数 columns、rows、attributes 分别为表格的列数、行数、表格属性。创建表格时必须指定表格的列数,而对于行数可以不用指定。建立表格之后,可以设定表格的属性,如:边框宽度、边框颜色、衬距(padding space 即单元格之间的间距)大小等属性。下面通过一个简单的例子说明如何使用表格,代码如下:1:Table table = new Table(3); 2:table.setBorderWidth(1); 3:table.se

14、tBorderColor(new Color(0, 0, 255); 4:table.setPadding(5); 5:table.setSpacing(5); 6:Cell cell = new Cell(header); 7:cell.setHeader(true); 8:cell.setColspan(3); 9:table.addCell(cell); 10:table.endHeaders(); 11:cell = new Cell(example cell with colspan 1 and rowspan 2); 12:cell.setRowspan(2); 13:cell.s

15、etBorderColor(new Color(255, 0, 0); 14:table.addCell(cell); 15:table.addCell(1.1); 16:table.addCell(2.1); 17:table.addCell(1.2); 18:table.addCell(2.2); 19:table.addCell(cell test1); 20:cell = new Cell(big cell); 21:cell.setRowspan(2); 22:cell.setColspan(2); 23:table.addCell(cell); 24:table.addCell(c

16、ell test2);运行结果如下:header example cell with colspan 1 and rowspan 2 1.1 2.1 1.2 2.2 cell test1 big cell cell test2 代码 1-5 行用于新建一个表格,如代码所示,建立了一个列数为 3 的表格,并将边框宽度设为 1,颜色为蓝色,衬距为 5。代码 6-10 行用于设定表格的表头,第 7 行 cell.setHeader(true);是将该单元格作为表头信息显示;第 8 行 cell.setColspan(3);指定了该单元格占 3 列;为表格添加表头信息时,要注意的是一旦表头信息添加完了之后,必须调用endHeaders()方法,如第 10 行,否则当表格跨页后,表头信息不会再显示。代码 11-14 行是向表格 中添加一个宽度占一列

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 工程造价

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号