java 在终端上以粗体打印

ewm0tg9j  于 2023-01-01  发布在  Java
关注(0)|答案(3)|浏览(198)

如何使用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");
wrrgggsh

wrrgggsh1#

Java System.out不能打印粗体,它只是流到标准输出流,因此原则上它只是未格式化的文本。
但是,一些软件包解释特殊字符序列(所谓的ANSI转义序列)以允许格式化。
注意,ANSI转义序列以转义字符开头,因此您也需要将其添加到字符串中(尝试"\u001B[1m I am bold""\033[0;1m" + "I am bold")。
大多数Unix终端默认解释ANSI转义序列。在旧的DOS时代,你需要使用ANSIS.SYS来使转义序列工作。
在Windows和Eclipse终端中,代码不起作用。

z8dt9xmd

z8dt9xmd2#

这真的取决于使用的是哪种控制台。对于NetBeansEclipse这样的IDE,我不确定你是否可以影响字体。但是对于大多数终端,下面的转义字符是有效的:

String textInBold = "Java_Prof_Level";
System.out.print("\033[0;1m" + textInBold);
olmpazwi

olmpazwi3#

我找到了这个,是爱普生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 is a reference link
我必须在命令前使用“”。否则它不起作用:

oStream.print("" + (char)27 + (char)97 + (char)1); // For centering text

相关问题