1

我必须从 servlet 添加图像,然后将其添加到 xsl 中。

这个 servlet 有一个 getUrl 方法,它返回一个 base64 url​​。

我试过这个,但不正确:

爪哇:

Transformer _Transformer = tFactory.newTransformer(style);

tFactory.setAttribute("imageChart", "ChartCreator?chartConfig=" + ChartPdfDecoder.getURL(chartConfig));

xsl:

<fo:block margin-left="1cm" margin-top="0.2cm" height="265px" width="310px">
    <fo:external-graphic src="url('$imageChart')"/>
</fo:block>

谁能帮我?

谢谢

4

2 回答 2

0

这条线有一个问题...

<fo:external-graphic src="url('$imageChart')"/>

由于这里使用了单撇号,它会从字面上寻找“$imageChart”的 url。您可能打算在此时由 XSLT 写出变量$imageChart的值。正确的语法是这样的..

<fo:external-graphic src="url('{$imageChart}')"/>

这里的花括号是属性值模板,表示要计算的表达式,而不是字面输出。

当然,您确实需要确保将变量/参数$imageChart设置为图像的正确 URL。

于 2013-11-11T17:21:34.433 回答
0

您需要回答“$imageChart 的价值是多少?”这个问题。...如果 imageChart 是一个变量,其中包含隐含的 Base64 编码图像,那么您需要使用 data: 用于实际 src 属性的方案,如下所示您需要设置实际图像的 mimetype(下面样式表中的 $mimetype) :

     <fo:external-graphic>
        <xsl:attribute name="src">
            <xsl:text>url('data:</xsl:text>
            <xsl:value-of select="$mimetype"/>                
            <xsl:text>;base64,</xsl:text>
            <xsl:value-of select="$imageChart"/>
            <xsl:text>')</xsl:text>
        </xsl:attribute>
    </fo:external-graphic>
于 2013-11-12T08:29:09.103 回答