iText系列(一) Itext简单介绍

iTextAsian.jar (亚洲语言包,可以使用中文)
需要添加到工程中
使用时需要在系统的环境变量Path中加入iText的路劲,在程序中就可以使用了
用iText生成PDF文档需要5个步骤:

1)      建立com.lowagie.text.Doucment对象的实例
Document document = new Document();

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

    PDFWriter.getInstance(document,new FileOutputStream(“要存放的文件路径名”));

       

3)      打开文档
    document.open();

      
4)      向文档中添加内容
    所有向文档添加的内容都是以对象为单位

    如:Phrase(短语)、Paragraph(段落)、Chunk(文本块)、Table、Graphic
    比较常用的为Paragraph对象,用于向文档中添加一段文字。
    Chunk(文本块)是处理文本的最小单位,由一串带格式(包括字体、颜色、大小)
       的字符串组成。
    Phrase(短语)由一个或多个Chunk(文本块)组成,Phrase(短语)也可以设定字体,
       但对于其中以设定过字体的Chunk(文本块)无效。通过Phrase(短语)成员函数
       Add可以将一个Chunk(文本块)加入到Phrase(短语)中。
       如:phrase.add(chunk);
    Paragraph(段落)由一个或多个Chunk(文本块)或Phrase(短语)组成,相当于
    Word文档中的段落概念,同样可以设定段落的字体大小、颜色等属性。另外也可     以设定段落的首行缩进、对齐方式(左对齐、右对齐、居中对齐)。通过函数
    SetAlignment()可以设定段落的对齐方式
     如:
     Paragraph.setAlignment(int age);
    参数有1(居中对齐)、2(右对齐)、3(左对齐);不设置默认左对齐。
    Chunk chunk1 = new Chunk("ceshi1");   
    Chunk chunk2 = new Chunk("ceshi2");
    Phrase phrase = new Phrase();
    Phrase.add(chunk1);
    Phrase.add(chunk2);
    Paragraph paragraph1 = new Paragraph("ceshizhi");    
第一种,,直接传值进去
    Paragraph paragraph2 = new Paragraph (chunk2);    
    paragraph2.setAlignment(1); 居中对齐
第二种,,传一个文本块对象进去
    Paragraph paragraph2 = new Paragraph (phrase);    
第三种,,传一个短语对象进去
    Document.add(paragraph1);
    Document.add(paragraph2);
    Document.add(paragraph3);
把段落写入文档中

5)      关闭文档

    Document.close();
其他:
换页
Document.newPage();
中文处理
当有中文的时候使用上面的方法则中文不会被写入,
因此需要用到:
        
BaseFont bfChinese = BaseFont.createFont("STSong-Light","UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);   
Font fontChinese = new Font(bfChinese, 12, Font.NORMAL,Color.GREEN);  
然后打开文档写入的时候,就应该按照下面的写法:

Paragraph paragraph1 = new Paragraph("测试", fontChinese);             
同上面一样"测试"可以用文本块或短语替换;
表格处理
iText中处理表格的类为:com.lowagie.text.Table和
com.lowagie.text.PDF.PDFPTable,对于比较简单的表格处理可以用
com.lowagie.text.Table,但是如果要处理复杂的表格,这就需要用
com.lowagie.text.PDF.PDFPTable进行处理。
类com.lowagie.text.Table的构造函数有三个:
1.       Table(int columns);
2.       Table(int columns,int rows)
3.       Table(Properties attributes)
参数columns、rows、attributes分别为表格的列数、行数、表格属性。
创建表格时必须指定表格的列数,而对于行数可以不用指定。
建立表格侯,可以设定表格的属性:
//设置表格的边逛大小
table.setBorderWidth(int arg);
//设置表格的对齐方式: 1为居中对齐,2为右对齐,3为左对齐
table.setAlignment(1);
//设置表格的边逛颜色
table.setborderColor(new Color(0,0,255));参数也可以Color.GREEN
//设置每个单元格中的内容和边框的间距
table.setPadding(int arg);         
//设置单元格的边框和边框的间距
table.setSpacing(int arg);       

创建单元格
//无参数的构造函数
Cell cell = new Cell();             
//带String类型参数的构造函数,可以直接输入文字
Cell cell = new Cell(String arg);
//带Element参数的构造函数,可以是元素,图片信息等
Cell cell = new Cell(Element arg);
//设置该单元格跨表格的几行,不跨行则不用指定
cell.setRowspan(int arg);
//设置该单元格跨表格的几列,不跨行则不用指定
cell.setColspan(int arg);
//为单元格添加一个元素,可以是元素,图片信息等
cell.addElement(Element arg);
//如果要添加中文,则需要如下:   fontChinese为上面定义的中文处理对象
cell.addElement(new Paragraph("中文", fontChinese));
//往表格中直接添加字符串,
table.addCell(String arg);
//往表格中添加单元格对象Cell
table.addCell(Cell cell);
往表格中添加单元格(cell)时,按自左向右,从上而下的次序添加
图片处理

iText中处理图像的类为com.lowagie.text.Image
目前iText支持的图像格式有:GIF、JPG、PNG等格式
iText用同样的构造函数自动识别图像格式:
//参数为gif、jpg、png格式的图片都可以
Image image = Image.getInstance("参数");
//定义一个图片信息,可以是绝对路径,也可以是URL   
Image img = Image.getInstance("D:\\4.jpg");
img = Image.getInstance(new URL(http://xxx.com/logo.jpg));
//添加到document中
document.add(img);

图像的位置
图像的位置主要是指图像在文档中的对齐方式、图像和文本的位置关系。                    
IText中通过函数public void setAlignment(int alignment)进行处理,            
参数alignment为Image.RIGHT、Image.MIDDLE、Image.LEFT分别指右对齐、居中、左对齐;
当参数alignment为Image.TEXTWRAP、Image.UNDERLYING分别 指文字绕图形显示、图形作为文字的背景显示。
这两种参数可以结合以达到预期的效果,
如setAlignment(Image.RIGHT|Image.TEXTWRAP)
显示的效果为图像右对齐,文字围绕图像显示。
图像的尺寸和旋转
//设置图像的宽和高
image.scaleAbsolute(int newWidth, int newHeight);
//设置图像比例,表示显示的大小为原始大小的多少比例
image.scalePercent(int percent);
//设置图像的高宽比例
image.scalePercent(int percentX,int percentY);
//设置图像旋转一定的角度;参数arg为弧度,而不是角度

image.setRotation(float arg);

原文链接:http://blog.sina.com.cn/s/blog_03c54d1001010mdj.html

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值