伙计们,我需要在我的 xsl:fo 文档中添加一个复选框,所以问题是,它们是 fo 中的一种方式,还是需要我一张图片(图形)?
我使用 FOP 和 xslt 2.0
这是复选框的图片
使用包含复选框图像的字体是一种方法(Wingdings 有几个复选框)。但您也可以将 SVG 代码 放入 FO 模板中。
5x5 毫米矩形的示例(超出我的想象,需要检查):
<fo:block>
<fo:instream-foreign-object>
<svg width="5" height="5">
<rect width="5" height="5" style="stroke-width:0.5;stroke:rgb(0,0,0)" />
</svg>
</fo:instream-foreign-object>
</fo:block>
并且您需要在 FO 模板中声明 svg 命名空间:
xmlns="http://www.w3.org/2000/svg"
这些字符有多种字体可供选择。检查 MS 哥特式。
我这几天遇到的另一种方式是带有边框的空格(或者如果选中则带有“x”)
<inline font-size="80%" vertical-align="10%" border-style="inset">   </inline>
<inline font-weight="bold" font-size="80%" vertical-align="10%" border-style="inset"> x </inline>
我尝试了字体,在 MS-Windows 中使用 Oxygen 进行测试时它们确实工作得很好,但是当我在 Linux 服务器中运行脚本时,它无法处理字体并打印数字符号。我必须找出是否有其他字体可以给出类似的结果,否则我将需要使用丑陋的表格。
使用图片起初是个好主意,但后来我意识到,当背景颜色与空白不同时,它们不会采用背景颜色;除非有办法让某种图片(也许是 gif)和 xslfo 指令来实现透视。