1

我在 Birt 中使用动态文本。我想在一行上显示一个句子,但如果它太宽,它会显示在两个或更多上。当句子太宽以使其保持在一行时,有没有办法动态减小字体大小?

谢谢您的帮助。

4

2 回答 2

2

首先选择您的单元格,然后单击脚本选项卡,从下拉列表中选择 onRender 并输入此代码
this.getStyle().fontSize 这使您可以在渲染页面时动态更改字体大小...
干杯..

于 2012-08-31T09:58:21.823 回答
1

这是我的解决方案——建立在@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;
}
于 2014-07-07T08:25:22.007 回答