2011-03-31 43 views
1

我有一個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

我不認爲這裏的XSL-FO是相關的。提供創建的SVG可能會幫助更多。 – Phrogz 2011-03-31 20:02:47

+0

SVG元素是1400行。似乎更多有趣的信息。有一些有用的東西嗎? – Morinar 2011-03-31 21:13:01

+0

我的感覺是,它可能會更容易將圖像直接添加到SVG文件。您應該將其添加到文件末尾,以便它具有比所有其他元素更高的z-index。也許用這個圖像創建一個簡化的SVG文件例子,看看你的SVG渲染器是否會渲染它。您也可以將IBEX渲染器的渲染與備用渲染器進行比較,包括那些具有更好工具支持的呈現器。例如,Chrome包含Webkit的Web檢查器,它允許您將鼠標懸停在DOM中的元素上,這將以圖形方式突出顯示其bbox。 – jbeard4 2011-04-01 10:47:45

回答

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允許其5英寸塊之外流動,但它的技巧佈局管理器,以爲它在單個頁面上有足夠的空間用於圖像和SVG(它可以)。

相關問題