You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

XSL-FO:将<fo:page-number/>格式化为罗马数字

实现XSL-FO页码转罗马数字的方法

XSL-FO的<fo:page-number>确实没有直接设置罗马数字格式的属性,需要借助XSLT的<xsl:number>元素来实现,具体操作如下:

  • 直接替换<fo:page-number/>,用<xsl:number>生成格式化后的罗马数字页码:
    • 小写罗马数字(i、ii、iii...):指定format="i"
    • 大写罗马数字(I、II、III...):指定format="I"

示例代码(页脚中添加小写罗马页码):

<fo:static-content flow-name="xsl-region-after">
  <fo:block text-align="center" font-size="10pt">
    <xsl:number value="current-page()" format="i"/>
  </fo:block>
</fo:static-content>

如果需要引用其他页面的页码并转为罗马数字,可以结合<fo:page-number-citation>的ref-id属性,先获取目标页面的页码值再格式化:

<fo:block>
  详见第 <xsl:number value="fo:page-number-citation(ref-id='target-section')" format="I"/> 页
</fo:block>

注意:主流XSL-FO处理器(如Apache FOP、RenderX XEP)都支持current-page()函数和上述写法,无需额外配置。

内容的提问来源于stack exchange,提问作者inVoKer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 16:47:05