我有一个XSL-FO样式表,里面有一个SVG,它是整个页面的大小。我试图绝对将图像放在SVG之上。当我添加该图像时,第二页被强制进入PDF输出。如果没有块或SVG,则只有一页。这是代码:
<xsl:template match="MyTag">
<fo:block>
<fo:block-container absolute-position="absolute" top="110px" left="557px" height="185px" width="160px">
<fo:block>
<fo:external-graphic>
<xsl:attribute name="src">
<xsl:value-of select="Image"/>
</xsl:attribute>
<xsl:attribute name="content-height">185px</xsl:attribute>
</fo:external-graphic>
</fo:block>
</fo:block-container>
<fo:instream-foreign-object>
<svg>
<!-- The full page sized SVG created by Inkscape here -->
</svg>
</fo:instream-foreigh-object>
</fo:block>
</xsl:template>
任何想法,我会在这里做错了,迫使第二个空白页?我的理解是,如果某些东西是绝对定位的,它不应该影响元素的流动,但它似乎在这里。
对于它的价值,我最初试图将图像作为<image>
标签放在SVG中,但它从未出现过,我不确定它是否与pdf渲染器(IBEX)有关或是其他一些问题,所以我试图解决这个问题。
答案 0 :(得分:0)
我想出了一个解决方法。基本上,我改变了包含<svg>
的块:
<fo:block-container absolute-position="absolute" height="5in">
<fo:block>
<fo:instream-foreign-object>
<svg>
<!-- The full page sized SVG created by Inkscape here -->
</svg>
</fo:instream-foreigh-object>
</fo:block>
</fo:block-container>
由于块绝对定位,允许整页大小的SVG流出其5in块之外,但它会让布局管理器认为它有足够的空间用于图像和单个页面上的SVG(它一样)。