外部图形相对路径

时间:2018-07-11 06:34:49

标签: java java-8 apache-fop

如何将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>

1 个答案:

答案 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);