如何在printf中以粗体显示输出? "[1m testing bold"
没有做任何事情。
String format = "%-20s %-15s %-20s %-15s %-10s";
System.out.printf(format, "Name", "Group_name", "Java_Prof_Level", "Cpr_Nr", "Gender", "[1m testing bold");
答案 0 :(得分:12)
您无法使用Java System.out
打印粗体。它只是流式传输到标准输出流,因此原则上它只是未格式化的文本。
但是,某些软件包会解释特殊字符序列(所谓的ANSI转义序列)以允许格式化。
请注意,ANSI转义序列以转义字符开头,因此您还需要将其添加到字符串中。 (尝试“\ u001B [1m我是大胆的”。)
大多数Unix终端默认解释ANSI转义序列。在旧的DOS时间,您需要使用 ANSI.SYS 来使转义序列起作用。
在Windows和Eclipse终端中,代码不起作用。
答案 1 :(得分:2)
这实际上取决于使用何种控制台。对于像Netbeans和Eclipse这样的IDE,我不确定你是否可以影响字体。但是对于大多数终端而言,以下转义字符有效:
String textInBold = "Java_Prof_Level";
System.out.print("\033[0;1m" + textInBold);
答案 2 :(得分:0)
我发现了这个。适用于爱普生 ECS/POS
string ESC = "\u001B";
string GS = "\u001D";
string InitializePrinter = ESC + "@";
string BoldOn = ESC + "E" + "\u0001";
string BoldOff = ESC + "E" + "\0";
string DoubleOn = GS + "!" + "\u0011"; // 2x sized text (double-high + double-wide)
string DoubleOff = GS + "!" + "\0";
printJob.Print(InitializePrinter);
printJob.PrintLine("Here is some normal text.");
printJob.PrintLine(BoldOn + "Here is some bold text." + BoldOff);
printJob.PrintLine(DoubleOn + "Here is some large text." + DoubleOff);
pdf的第一页 here a reference link
我必须在命令前使用 ""。否则它不起作用:
oStream.print(""+(char)27+(char)97+(char)1);//for center text