zoukankan      html  css  js  c++  java
  • Itext简绍及操作PDF文件

    iText简介

    iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。 iText的安装非常方便,下载iText.jar文件后,只需要在系统的CLASSPATH中加入iText.jar的路径,在程序中就可以使用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.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);

  • 相关阅读:
    JavaWeb--HttpSession案例
    codeforces B. Balls Game 解题报告
    hdu 1711 Number Sequence 解题报告
    codeforces B. Online Meeting 解题报告
    ZOJ 3706 Break Standard Weight 解题报告
    codeforces C. Magic Formulas 解题报告
    codeforces B. Sereja and Mirroring 解题报告
    zoj 1109 Language of FatMouse 解题报告
    hdu 1361.Parencodings 解题报告
    hdu 1004 Let the Balloon Rise 解题报告
  • 原文地址:https://www.cnblogs.com/tankqiu/p/4251540.html
Copyright © 2011-2022 走看看