我正在使用FOP库从xml文件生成pdf,能够生成通过另一个xml传递的动态信息的所有数据(图像除外)。它不允许我传递图像值如下
<fo:inline>
<fo:external-graphic content-width="109.5pt"
content-height="50.25pt"
src="<xsl:value-of select="paymentno" />"
</fo:external-graphic >
</fo:inline>
其中动态传递的xml数据是
`<tns:paymentno>
"url("data:image/auto;base64,iVBORw0KGgoAAAANSUhEUgAAAFUAAAAoCAIAAAAAKyESAAAAYUlEQVR42u3PQQoAIAgEwP7/6YIiEC3oGownjWVjWt/T5qwlvqQz5utyKzkGUvJYlX55aahnjOUAPz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/P/+H/gGaQxUFTT6pUgAAAABJRU5ErkJggg==;")"</tns:paymentno>`
还有一件事,如果我将静态值(图像)直接传递给xsl,那么我可以在我的pdf中获取图像。 如果您有任何想法,请尽可能为我提供解决方案
答案 0 :(得分:0)
您的XSL不正确。你不能只把xsl:value-of内联。请参阅此答案以获取编写模板的灵感。
Inserting a base64 encoded image into xsl-fo file while using apache-poi
答案 1 :(得分:0)
您将把结果传递给XSL函数,因此您可以直接读取该值。
<fo:inline>
<fo:external-graphic
content-width="109.5pt"
content-height="50.25pt"
src="url({paymentno})">
</fo:external-graphic >
</fo:inline>
如果您真的想使用value-of,那么您将使用它来设置xsl属性。从内存来看,这应该是(未经测试的):
<fo:inline>
<fo:external-graphic
content-width="109.5pt"
content-height="50.25pt">
<xsl:attribute name="src">
<xsl:value-of select="paymentno"/>
</xsl:attribute>
</fo:external-graphic>
</fo:inline>