当前位置:编程学习 > JAVA >>

iText操作PDF基础-2

UML 元素类图:

 clip_image001

Chunk & Phase
Chunk
最小的元素(有同一种类型的字体,颜色,样式组成的字符串)。字体属性都是由Font对象来定义。

一般不直接添加chunk元素,而是使用chunk组成其他大元素后,添加到文档中。

不过Chunk.NEWLINE是直接添加到文档中。

LEADING
文字之间的间距,Chunk对象不包含文字间距设置。

1
PdfWriter.getInstance(document, new FileOutputStream(RESULT)).setInitialLeading(16);
PHRASE
由一系列带有leading属性的chunk对象组成。

基本样例:

01
public static void main(String[] args) throws DocumentException,
02
 
03
IOException {
04
 
05
    Document document = new Document(); // 创建一个文档
06
 
07
    PdfWriter.getInstance(document, new FileOutputStream("D:/demo.pdf")); // 获取PdfWriter实例
08
 
09
    document.open(); // 打开文档
10
 
11
    Phrase phase = new Phrase();
12
 
13
    phase.add(new Chunk("first line"));
14
 
15
    phase.add(Chunk.NEWLINE); //换行
16
 
17
    phase.add(new Chunk("second Line"));
18
 
19
    document.add(phase);
20
 
21
    document.close(); // 关闭文档
22
 
23
}
结果:

 clip_image001[7]

Paragraph
有一系列phrase和一些额外的属性带有换行标识组成。

代码:

01
public static void main(String[] args) throws FileNotFoundException,
02
 
03
DocumentException {
04
 
05
    Document document = new Document(); // 创建一个文档
06
 
07
    PdfWriter.getInstance(document, new FileOutputStream("D:/demo.pdf")); // 获取PdfWriter实例
08
 
09
    document.open(); // 打开文档
10
 
11
    Paragraph para = new Paragraph();
12
 
13
    para.add(new Chunk("first chunk"));
14
 
15
    para.add(new Chunk(",second chunk"));
16
 
17
    para.setAlignment(Element.ALIGN_RIGHT); // 右对齐
18
 
19
    document.add(para);
20
 
21
    // Pharagraph带有换行标识符
22
 
23
    Paragraph paraL = new Paragraph();
24
 
25
    paraL.add(new Chunk("2 : first chunk"));
26
 
27
    paraL.add(new Chunk(",second chunk"));
28
 
29
    paraL.setAlignment(Element.ALIGN_LEFT);// 左对齐
30
 
31
    document.add(paraL);
32
 
33
    Paragraph paraR = new Paragraph();
34
 
35
    paraR.add(new Chunk("3 : first chunk"));
36
 
37
    paraR.add(new Chunk(",second chunk"));
38
 
39
    paraR.setAlignment(Element.ALIGN_LEFT);// 左对齐
40
 
41
    paraR.setLeading(30f);// 设置和上面一段paragraph间距
42
 
43
    document.add(paraR);
44
 
45
    document.close(); // 关闭文档
46
 
47
}

List
一系列Paragraph组成

代码:

01
public static void main(String[] args) throws FileNotFoundException,
02
DocumentException {
03
    Document document = new Document(); // 创建一个文档
04
    PdfWriter.getInstance(document, new FileOutputStream("D:/demo.pdf")); // 获取PdfWriter实例
05
    document.open(); // 打开文档
06
    List pList = new List();
07
    ListItem li = new ListItem();
08
    for (int i = 0; i < 3; i++) {
09
        Paragraph p = new Paragraph();
10
        p.add(new Chunk("item : " + i));
11
        li.add(p);
12
    }
13
    pList.setNumbered(true);
14
    pList.add(li);
15
    document.add(pList);
16
    document.add(Chunk.NEWLINE);
17
    List pList2 = new List();
18
    ListItem li2 = new ListItem();
19
    for (int i = 0; i < 3; i++) {
20
        li2.add(new Chunk("mainItem : " + i));
21
            for (int j = 0; j < 3; j++) {
22
                List pList3 = new List();
23
                ListItem li3 = new ListItem();
24
                Paragraph p = new Paragraph();
25
                p.add(new Chunk("subItem : " + j));
26
                li3.add(p);
27
                pList3.add(li3);
28
                pList3.setIndentationLeft(10f);
29
                li2.add(pList3);
30
            }
31
        }
32
        pList2.add(li2);
33
        document.add(pList2);
34
        document.close(); // 关闭文档
35
}
clip_image003

补充:软件开发 , Java ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,