birt引擎对html标准支持有限,`
在使用BIRT生成PDF报表时,开发者常期望通过标准HTML语法控制有序列表起始编号,例如:
- 第二项内容
- 第三项内容
然而,BIRT的PDF渲染引擎(基于Apache FOP或内置PDF生成器)并不解析start、reversed、type等标签的HTML5属性
——它仅将
✅ 可行解决方案如下:
1. 使用静态编号 + 替代 (推荐)
完全绕过
1. List Item 1
2. Some text for list item 2
3. And so on...
若需动态编号(如数据绑定),可在BIRT表达式中拼接:
// 在Dynamic Text元素中设置Content Type = HTML,Expression: "" + (row["index"] + 1) + ". " + row["description"] + "
"
2. 利用BIRT List组件 + 计数器(结构化方案)

3. CSS伪元素(仅对HTML预览有效,PDF无效)
以下CSS在HTML预览中可生效,但PDF导出时被完全忽略,不建议依赖:
ol.custom-start { counter-reset: item 1; } /* 无法影响PDF */
li { display: block; }
li:before { content: counter(item) ". "; counter-increment: item; }⚠️ 重要注意事项:
综上,面对BIRT的HTML支持边界,应以声明式数据驱动替代声明式HTML标记——用BIRT表达式或List组件显式控制序号,而非寄望于HTML属性自动生效。这是保障PDF输出稳定、可维护的核心实践。