iText操作PDF基础-2
UML 元素类图:
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
}
结果:
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
}
补充:软件开发 , Java ,