如何在单个String中使用常规和粗体?

nit*_*tin 4 itext itextpdf

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

这是我的代码:

String cc_cust_name = request.getParameter("CC_CUST_NAME");    
document.add(new Paragraph(" NAME  " + cc_cust_name, fontsmallbold));
Run Code Online (Sandbox Code Playgroud)

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

cell1 = new PdfPCell(new Phrase("Date of Birth" + cc_cust_dob ,fontsmallbold));
Run Code Online (Sandbox Code Playgroud)

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

Bru*_*gie 5

现在,您正在Paragraph使用单个字体创建一个fontsmallbold。您要创建一个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));
Run Code Online (Sandbox Code Playgroud)

如您所见,我们创建了一个Paragraph内容"NAME: ",该内容使用font bold。然后我们ChunkParagraphwith CC_CUST_NAME中添加一个in字体regular

另请参见如何为itext中的单个字符串设置两种不同的颜色以及使用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);
Run Code Online (Sandbox Code Playgroud)