使用xsl:fo在PDF中浮动图像

时间:2012-09-13 16:36:29

标签: xml xslt xml-parsing xslt-2.0 xsl-fo

我一直在努力寻找解决方案,但直到现在还没有运气。我正在从xml生成PDF,我想将图像浮动到pdf中。例如,如果我在xml中左侧浮动图像,则同样应该应用到pdf中。

<p>
<img width="127" height="190" src="/images/241729.jpg" style="float: left;">
Globally transition high standards in technology via ubiquitous partnerships.
Distinctively pursue worldwide paradigms vis-a-vis business e-business.
</p> 

我现在看到的XSL

<xsl:template match="img">
    <xsl:param name="src">
      <xsl:choose>
        <xsl:when test="substring-before(@src,'://') = 'http'"><xsl:value-of select="@src" /></xsl:when>
    <xsl:otherwise>
      <xsl:choose>
        <xsl:when test="substring(@src, 1, 1) != '/' "><xsl:value-of select="@src" /></xsl:when>
        <xsl:otherwise><xsl:value-of select="@src" /></xsl:otherwise>
      </xsl:choose>
    </xsl:otherwise>
      </xsl:choose>
    </xsl:param>

    <fo:block space-after="12pt">
      <fo:external-graphic src="{$src}">
        <xsl:if test="@width">
          <xsl:attribute name="width">
            <xsl:choose>
              <xsl:when test="contains(@width, 'px')">
                <xsl:value-of select="@width"/>
              </xsl:when>
              <xsl:otherwise>
                <xsl:value-of select="concat(@width, 'px')"/>
              </xsl:otherwise>
            </xsl:choose>
          </xsl:attribute>
        </xsl:if>
        <xsl:if test="@height">
          <xsl:attribute name="height">
            <xsl:choose>
              <xsl:when test="contains(@height, 'px')">
                <xsl:value-of select="@height"/>
              </xsl:when>
              <xsl:otherwise>
                <xsl:value-of select="concat(@height, 'px')"/>
              </xsl:otherwise>
            </xsl:choose>
          </xsl:attribute>
        </xsl:if>
      </fo:external-graphic>
    </fo:block>
  </xsl:template>

我正在尝试在此模板匹配中添加<fo:float>,但它的工作方式不正常。如果你能告诉我如何处理这个问题,那就太好了。

0 个答案:

没有答案