我要从servlet添加一个图像,然后将其添加到xsl。
这个servlet有一个返回base64 url的getUrl方法。
我试过这个,但不正确:
的java:
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>
谁能帮帮我?
由于
答案 0 :(得分:0)
这条线路有一个问题......
<fo:external-graphic src="url('$imageChart')"/>
由于在这里使用了单个撇号,因此它将在字面上寻找“$ imageChart”的URL。您可能想要的是此时由XSLT写出的变量 $ imageChart 的值。正确的语法就是这个..
<fo:external-graphic src="url('{$imageChart}')"/>
这里的花括号是属性值模板,表示要计算的表达式,而不是字面输出。
当然,您需要确保将变量/参数 $ imageChart 设置为图像的正确网址。
答案 1 :(得分:0)
您需要回答问题&#34; $ imageChart的价值是多少?&#34; ...如果imageChart是一个包含暗示的Base64编码图像的变量,那么你需要使用一个data:scheme来实际的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>