xsl:fo 如何绘制复选框

问题描述 投票:0回答:4

伙计们,我需要在我的 xsl:fo 文档中添加一个复选框,所以问题是,它们是 fo 中的一种方式,还是需要我一张图片(图形)?

我使用 FOP 和 xslt 2.0

这是复选框的图片 enter image description here

xml xslt-2.0 xsl-fo
4个回答
5
投票

使用包含复选框图像的字体是一种方法(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"


2
投票

这些字符有多种字体可供选择。检查 MS 哥特式。


0
投票

我这几天遇到的另一种方式是带有边框的空格(或者如果选中则带有“x”)

    <inline font-size="80%" vertical-align="10%" border-style="inset">&#160;&#160;  </inline>
    <inline font-weight="bold" font-size="80%" vertical-align="10%" border-style="inset">&#160;x </inline>

-1
投票

我尝试了字体,在 MS-Windows 中使用 Oxygen 进行测试时它们确实工作得很好,但是当我在 Linux 服务器中运行脚本时,它无法处理字体并打印数字符号。我必须找出是否有其他字体可以给出类似的结果,否则我将需要使用丑陋的表格。

使用图片起初是个好主意,但后来我意识到,当背景颜色与空白不同时,它们不会采用背景颜色;除非有办法让某种图片(也许是 gif)和 xslfo 指令来实现透视。

© www.soinside.com 2019 - 2024. All rights reserved.