如何将fo:external-graphic与相对路径一起使用?
我一直在寻找每个地方,但找不到答案。大多数答案都谈论将图像放入Java项目的资源中,但这对我没有帮助,因为它是生成运行时的图像。
因此,简而言之..我可以在XSL文档中放入某种变量,然后通过回调在我的Java代码中设置它吗?
<fo:table-cell>
<fo:block margin-top="23mm">
<fo:external-graphic src="url({$ImagePath}CAPTION.PNG)" height="17mm"
content-height="scale-to-fit" content-width="65mm"
scaling="non-uniform"/>
</fo:block>
</fo:table-cell>
答案 0 :(得分:0)
我找到了解决方案!参数!
首先在XSL文档中,您必须定义变量:
然后稍后可以使用它:
<fo:table-cell>
<fo:block margin-top="23mm">
<fo:external-graphic src="url({$ImagePath}CAPTION.PNG)" height="17mm"
content-height="scale-to-fit" content-width="65mm"
scaling="non-uniform"/>
</fo:block>
</fo:table-cell>
在呈现文档之前,您已在JAVA代码中设置了变量:
//设置XSLT TransformerFactory工厂= TransformerFactory.newInstance(); 变压器变形金刚= factory.newTransformer(new StreamSource(xsltFile));
// Resulting SAX events (the generated FO) must be piped through to FOP
Result res = new SAXResult(fop.getDefaultHandler());
transformer.setParameter("ImagePath", "C:/Temp/Poland/");
transformer.transform(xmlSource, res);