iText操作PDF基础-2

UML 元素类图:

iText操作PDF基础-2_第1张图片

Chunk & Phase

Chunk

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

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

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

LEADING

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

PdfWriter.getInstance(document, new FileOutputStream(RESULT)).setInitialLeading(16);

PHRASE

由一系列带有leading属性的chunk对象组成。

基本样例:

public static void main(String[] args) throws DocumentException,

IOException {

	Document document = new Document(); // 创建一个文档

	PdfWriter.getInstance(document, new FileOutputStream("D:/demo.pdf")); // 获取PdfWriter实例

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

	Phrase phase = new Phrase();

	phase.add(new Chunk("first line"));

	phase.add(Chunk.NEWLINE); //换行

	phase.add(new Chunk("second Line"));

	document.add(phase);

	document.close(); // 关闭文档

}

结果:

iText操作PDF基础-2_第2张图片

Paragraph

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

代码:

public static void main(String[] args) throws FileNotFoundException,

DocumentException {

    Document document = new Document(); // 创建一个文档

    PdfWriter.getInstance(document, new FileOutputStream("D:/demo.pdf")); // 获取PdfWriter实例

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

    Paragraph para = new Paragraph();

    para.add(new Chunk("first chunk"));

    para.add(new Chunk(",second chunk"));

    para.setAlignment(Element.ALIGN_RIGHT); // 右对齐

    document.add(para);

    // Pharagraph带有换行标识符

    Paragraph paraL = new Paragraph();

    paraL.add(new Chunk("2 : first chunk"));

    paraL.add(new Chunk(",second chunk"));

    paraL.setAlignment(Element.ALIGN_LEFT);// 左对齐

    document.add(paraL);

    Paragraph paraR = new Paragraph();

    paraR.add(new Chunk("3 : first chunk"));

    paraR.add(new Chunk(",second chunk"));

    paraR.setAlignment(Element.ALIGN_LEFT);// 左对齐

    paraR.setLeading(30f);// 设置和上面一段paragraph间距

    document.add(paraR);

    document.close(); // 关闭文档

}
iText操作PDF基础-2_第3张图片

List

一系列Paragraph组成

代码:

public static void main(String[] args) throws FileNotFoundException,
DocumentException {
    Document document = new Document(); // 创建一个文档
    PdfWriter.getInstance(document, new FileOutputStream("D:/demo.pdf")); // 获取PdfWriter实例
    document.open(); // 打开文档
    List pList = new List();
    ListItem li = new ListItem();
    for (int i = 0; i < 3; i++) {
        Paragraph p = new Paragraph();
        p.add(new Chunk("item : " + i));
        li.add(p);
    }
    pList.setNumbered(true);
    pList.add(li);
    document.add(pList);
    document.add(Chunk.NEWLINE);
    List pList2 = new List();
    ListItem li2 = new ListItem();
    for (int i = 0; i < 3; i++) {
        li2.add(new Chunk("mainItem : " + i));
            for (int j = 0; j < 3; j++) {
                List pList3 = new List();
                ListItem li3 = new ListItem();
                Paragraph p = new Paragraph();
                p.add(new Chunk("subItem : " + j));
                li3.add(p);
                pList3.add(li3);
                pList3.setIndentationLeft(10f);
                li2.add(pList3);
            }
        }
        pList2.add(li2);
        document.add(pList2);
        document.close(); // 关闭文档
}

iText操作PDF基础-2_第4张图片

你可能感兴趣的:(iText操作PDF基础-2)