xsl-fo-FOP-fo:block-container:write-mode(无上下文信息)



我无法解释为什么GWT不接受XSL:中如下声明的变量

<xsl:variable name="writeMode">
        <xsl:choose>
            <xsl:when test="$lang ='fa'">
                <xsl:value-of select="'rl-tb'"/>
            </xsl:when>
            <xsl:otherwise>
                <xsl:value-of select="'lr-tb'"/>
            </xsl:otherwise>
        </xsl:choose>
    </xsl:variable>
<xsl:output method="xml" indent="yes"/>
    <xsl:template match="/">
        <fo:root>
            <fo:layout-master-set>
                <fo:simple-page-master master-name="A4-portrait"
                                       page-height="29.7cm" page-width="21.0cm" margin="2cm">
                    <fo:region-body/>
                </fo:simple-page-master>
            </fo:layout-master-set>
            <fo:page-sequence master-reference="A4-portrait">
                <fo:flow flow-name="xsl-region-body">
                    <fo:block-container write-mode="{$writeMode}" font-family="{$font}" language="{$lang}">
                        <fo:block>
                            بهترین قیمت دوچرخه کوهستان موجود است.
                        </fo:block>
                    </fo:block-container>
                </fo:flow>
            </fo:page-sequence>
        </fo:root>
    </xsl:template>

我得到的错误:

'在"fo:block container"上遇到无效属性:写入模式(没有可用的上下文信息)'

wg4.bean.ancestor.TechniqueException: Error generating PDF file : org.apache.fop.fo.ValidationException: Invalid property encountered on "fo:block-container": write-mode (No context info available)

有什么想法吗?非常感谢。

修复了它。在使用写模式选项时出现了一个拼写错误:

而不是

write-mode="{$writeMode}"

应该是

writing-mode="{$writingMode}".

当然,我将变量值赋值重命名为:

<xsl:variable name="writingMode">
        <xsl:if test="$langue='fa'">
            <xsl:value-of select="'rl-tb'"/>
        </xsl:if>
    </xsl:variable>

因为默认值是lt tb。HTH

最新更新