我在 Birt 中使用动态文本。我想在一行上显示一个句子,但如果它太宽,它会显示在两个或更多上。当句子太宽以使其保持在一行时,有没有办法动态减小字体大小?
谢谢您的帮助。
首先选择您的单元格,然后单击脚本选项卡,从下拉列表中选择 onRender 并输入此代码
this.getStyle().fontSize 这使您可以在渲染页面时动态更改字体大小...
干杯..
这是我的解决方案——建立在@Sundar 所说的基础上。
就我而言,我在一个单元格中有两个字段。它并不完美,但我必须知道文本何时“太大”的唯一方法是测量组合字符串的长度,然后相应地调整字体大小。
单击单元格,然后单击脚本选项卡,然后在 onRender 脚本中输入这样的代码
// Decide if we need to change font size.
totalLength = 0;
if (row["Field Name 1"]) {
totalLength += row["Field Name 1"].length;
}
if (row["Field Name 2"]) {
totalLength += row["Field Name 2"].length;
}
// Make the font smaller with larger amounts of text.
switch (true) {
case (totalLength > 200):
this.getStyle().fontSize = "6pt";
break;
case (totalLength > 100 && totalLength < 200):
this.getStyle().fontSize = "8pt";
break;
default:
this.getStyle().fontSize = "10pt";
break;
}