如何在XSL Formatter中为XSLFO region-before设置出血?
解决XSLFO中region-before背景色延伸至出血区的问题
要让region-before的背景色覆盖到3mm出血范围,需要调整区域的定位和尺寸,让它延伸到页面边界外的出血区域。具体修改如下:
- 给
fo:region-before添加负的margin-top值,数值等于出血大小(-3mm),让区域顶部延伸到页面外的出血区 - 增大
fo:region-before的extent值,把出血的3mm加到原有高度上,保证原有内容区域的高度不变(原有extent是0.9in,3mm≈0.118in,所以新的extent设为1.018in,若处理器支持混合单位,也可直接写0.9in + 3mm)
修改后的页面模板代码:
<fo:simple-page-master master-name="front-cover" page-width="8.5in" page-height="11in" margin-top="0in" margin-bottom="0in" margin-left="0in" margin-right="0in" background-color="lightblue" axf:printer-marks="crop cross" axf:printer-marks-line-width="0.25pt" axf:crop-offset="6mm" axf:bleed="3mm" > <fo:region-body margin-top="0.9in" margin-bottom="0.0in" margin-left="1.0in" margin-right="1.0in" border="thin solid red"/> <fo:region-before region-name="front-cover-header" background-color="green" extent="1.018in" display-align="before" border="thin solid black" margin-top="-3mm"/> </fo:simple-page-master>
原理说明:
默认region-before的顶部对齐页面上边缘,出血区在页面边界之外,因此背景色无法覆盖。通过负的margin-top让区域向上延伸到出血区,同时增大extent维持原有内容的高度,这样背景色就能覆盖到出血范围,裁切标记对应的出血区域也会包含region-before的背景色,符合打印需求。
内容的提问来源于stack exchange,提问作者drLocke97
相关产品推荐
相关产品推荐

