如何在单个字符串中使用常规和粗体?

时间:2015-08-11 12:16:42

标签: itext itextpdf

我有一个String,它由一个常量部分和一个可变部分组成。 我希望变量在文本段落中使用常规字体进行格式化,而我希望常量部分为粗体。

这是我的代码:

String cc_cust_name = request.getParameter("CC_CUST_NAME");    
document.add(new Paragraph(" NAME  " + cc_cust_name, fontsmallbold));

表中单元格的代码如下所示:

cell1 = new PdfPCell(new Phrase("Date of Birth" + cc_cust_dob ,fontsmallbold));

在这两种情况下,第一部分(" NAME ""Date of Birth")都应该是粗体,而变量部分(cc_cust_namecc_cust_dob)应该是常规的。

1 个答案:

答案 0 :(得分:4)

目前您正在使用单一字体创建Paragraphfontsmallbold。您想要创建一个使用两种不同字体的Paragraph

Font regular = new Font(FontFamily.HELVETICA, 12);
Font bold = Font font = new Font(FontFamily.HELVETICA, 12, Font.BOLD);
Paragraph p = new Paragraph("NAME: ", bold);
p.add(new Chunk(CC_CUST_NAME, regular));

如您所见,我们创建的Paragraph内容"NAME: "使用字体bold。然后,我们使用Chunk字体ParagraphCC_CUST_NAME添加regular

另请参阅How to set two different colors for a single string in itextApplying color to Strings in Paragraph using Itext,这两个问题涉及同一主题。

你也可以在PdfPCell的上下文中使用它,在这种情况下你创建一个使用两种字体的Phrase

Font regular = new Font(FontFamily.HELVETICA, 12);
Font bold = Font font = new Font(FontFamily.HELVETICA, 12, Font.BOLD);
Phrase p = new Phrase("NAME: ", bold);
p.add(new Chunk(CC_CUST_NAME, regular));
PdfPCell cell = new PdfPCell(p);