XSL-FO:图像不显示在PDF文件中

时间:2015-01-19 10:41:50

标签: pdf xsl-fo

这是我的问题:我的图片没有显示在我的PDF文件中。

这是我的XML文件:

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<Devis xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="mon_fichier.xsd">
    <EnTete>
        <Logo>
            <img>file:/C:/mon_fichier.jpg</img>
        </Logo>
</EnTete>
</Devis>

这是我的XSL文件:

<xsl:template match="/">

...
    <fo:static-content flow-name="xsl-region-before"
                    font-size="12pt" font-family="Times New Roman">
        <fo:block>
         <xsl:param name="image" select="EnTete/Logo/img" />

         <fo:external-graphic src="{concat('url','(',$image,')')}"
            content-height="80px" content-width="640px" />
        </fo:block>
    </fo:static-content>

...

</xsl:template>

有什么想法吗?

提前谢谢。

FM

2 个答案:

答案 0 :(得分:1)

我看到你应该检查几点:

  • xsl:param 声明不在有效位置,它应该在 xsl:template 之后;如果您实际上从未将值传递给模板并始终使用所选模板,则可以使用 xsl:variable ,并将其放在任何您想要的位置
  • 如果要在匹配“/”的模板中选择图像路径名,则XPath应为Devis/EnTete/Logo/img(或/Devis/EnTete/Logo/img//EnTete/Logo/img
  • 你没有提到你正在使用的格式化程序;如果它是最新版本的Apache FOP,您不必将图像路径放在url(...)内,只需使用<fo:external-graphic src="{$image}" content-height="80px" content-width="640px"/>
  • XML文件中的图像路径名应该是: file:// C:/mon_fichier.jpg (使用 // 而不是单个 /

答案 1 :(得分:0)

XML中的路径很奇怪:file:/ C:/mon_fichier.jpg应为C:\ mon_fichier.jpg

然后这应该有效:

fo:external-graphic src="/Devis/EnTete/Logo/img"

XSL中的xsl:param什么都不做。为什么会这样?