itexpdf同一个段落不同文字,如何设置不同的格式
Java使用itexpdf生成PDF,正常情况下,新建一个段落Paragraph,然后可以给段落添加一个格式BaseFont
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);
把每一件简单的事情做好,就是不简单;把每一件平凡的事情做好,就是不平凡!相信自己,创造奇迹~~