itexpdf同一个段落不同文字,如何设置不同的格式
1 Paragraph paragraphBlue = new Paragraph(“我是蓝色字体”, blueFont); 2 document.add(paragraphBlue);
效果如下:
但是这样整个段落只能是一个格式,如果我想让前面的字是蓝色,后面的字是红色,中间还插一张图片,这样的方法就无法做到了
后来发现,这时就用到了com.itextpdf.text.Chunk这个类了
效果如下:
代码为:
1 import com.itextpdf.text.*; 2 import com.itextpdf.text.pdf.BaseFont; 3 import com.itextpdf.text.pdf.PdfWriter; 4 5 import java.io.FileOutputStream; 6 import java.io.IOException; 7 8 public class TestDemo { 9 public static void main(String[] args) throws DocumentException, IOException { 10 //创建文件 11 Document document = new Document(); 12 //建立一个书写器 13 PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(“E:/test.pdf”)); 14 //打开文件 15 document.open(); 16 17 //中文字体,解决中文不能显示问题 18 BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); 19 20 //蓝色字体 21 Font blueFont = new Font(bfChinese); 22 blueFont.setColor(BaseColor.BLUE); 23 //红色字体 24 Font redFont = new Font(bfChinese); 25 redFont.setColor(BaseColor.RED); 26 27 //段落文本 28 Paragraph paragraph = new Paragraph(); 29 30 Chunk chunkBlue = new Chunk("我是蓝色字体", blueFont); 31 Chunk chunkRed = new Chunk("我是红色字体", redFont); 32 33 paragraph.add(chunkBlue); 34 paragraph.add(chunkRed); 35 36 document.add(paragraph); 37 38 //关闭文档 39 document.close(); 40 //关闭书写器 41 writer.close(); 42 } 43 }
当然也可以在段落中添加图片
1 Image image = Image.getInstance(“E:/test.gif”); 2 Chunk chunkImage = new Chunk(image,0,0); 3 paragraph.add(chunkImage);
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战