外部图形相对路径

external-graphic relative path

如何使用具有相对路径的 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>

我找到了解决办法!参数!

首先必须在 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(); 变压器 transformer = 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);