2013-02-04 26 views
2

根據Formatting Object documentation region-start(身體左側的區域)跨越 region-before(header)和region-after(footer)之間,但是當我生成PDF FOP(v1 .1)region-start將從頁面的頂部開始,並會將該區域推到右邊。爲什麼當region-before存在時region-start從頁面頂部開始?

那麼,是否有任何屬性或任何使發電機放置區域 - 開始低於 region-before?

下面是一些示例代碼:

<?xml version="1.0" encoding="ISO-8859-1"?> 
<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
xmlns:fo="http://www.w3.org/1999/XSL/Format"> 

<xsl:template match="/"> 
    <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> 
     <fo:layout-master-set> 
      <fo:simple-page-master master-name="A4-cover" 
       page-width="210mm" page-height="297mm" margin="12mm"> 
       <fo:region-body margin-top="60mm" margin-left="85mm" /> 
       <fo:region-before extent="55mm" /> 
       <fo:region-start extent="80mm" /> 
      </fo:simple-page-master> 
     </fo:layout-master-set> 

     <fo:page-sequence master-reference="A4-cover"> 
      <fo:static-content flow-name="xsl-region-before"> 
       <fo:block background-color="blue"> 
        Before area 
       </fo:block> 
      </fo:static-content> 

      <fo:static-content flow-name="xsl-region-start"> 
       <fo:block background-color="red"> 
        Start area 
       </fo:block> 
      </fo:static-content> 

      <fo:flow flow-name="xsl-region-body"> 
       <fo:block background-color="green"> 
        Body area 
       </fo:block> 
      </fo:flow> 
     </fo:page-sequence> 
    </fo:root> 
</xsl:template> 
</xsl:stylesheet> 

回答

3

首先,我認爲,當你在默認情況下它預計它應該工作。

但事實證明,precedence="true"必須設置爲region-before才能獲得想要的行爲(防止region-start擴展到角落)。見http://www.w3.org/TR/xsl11/#precedence

在XSL-FO規範中沒有很清楚地說明,但據我所知precedence只適用於region-beforeregion-after

這是一個郵件列表主題,討論話題:http://apache-fop.1065347.n5.nabble.com/page-layout-bug-td8766.html

+0

它的工作,非常感謝你!我只是在區域中添加了屬性 - 在聲明之前:''。 – re404

相關問題