1. 程式人生 > 其它 >itexpdf同一個段落不同文字,如何設定不同的格式

itexpdf同一個段落不同文字,如何設定不同的格式

Paragraph paragraphBlue = new Paragraph(“我是藍色字型”, blueFont);
document.add(paragraphBlue);

效果如下:

但是這樣整個段落只能是一個格式,如果我想讓前面的字是藍色,後面的字是紅色,中間還插一張圖片,這樣的方法就無法做到了

後來發現,這時就用到了com.itextpdf.text.Chunk這個類了

效果如下:

程式碼為:

import com.itextpdf.text.*;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfWriter;

import java.io.FileOutputStream;
import java.io.IOException;

public class TestDemo {
public static void main(String[] args) throws DocumentException, IOException {
//建立檔案
Document document = new Document();
//建立一個書寫器
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(“E:/test.pdf”));

//開啟檔案
document.open();

    //中文字型,解決中文不能顯示問題
    BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);

    //藍色字型
    Font blueFont = new Font(bfChinese);
    blueFont.setColor(BaseColor.BLUE);
    //紅色字型
    Font redFont = new Font(bfChinese);
    redFont.setColor(BaseColor.RED);

    //段落文字
    Paragraph paragraph = new Paragraph();

    Chunk chunkBlue = new Chunk("我是藍色字型", blueFont);
    Chunk chunkRed = new Chunk("我是紅色字型", redFont);

    paragraph.add(chunkBlue);
    paragraph.add(chunkRed);

    document.add(paragraph);

    //關閉文件
    document.close();
    //關閉書寫器
    writer.close();
}

}

當然也可以在段落中新增圖片

在這裡插入圖片描述

Image image = Image.getInstance(“E:/test.gif”);
Chunk chunkImage = new Chunk(image,0,0);
paragraph.add(chunkImage);