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

How can I use regular and bold in a single String?

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

这是我的代码:

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

我在 table 中的单元格代码如下所示:

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

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

现在您正在使用一种字体创建 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。然后我们在字体 regular.

中添加一个 ChunkParagraph with CC_CUST_NAME

另请参阅 How to set two different colors for a single string in itext and Applying 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);