2015-09-21 45 views
1

我嘗試爲FOP 2.0中的簡單頁面主頁設置背景圖像。 我試過以下代碼:如何在Apache FOP 2.0中定義頁面主頁的背景圖像

<fo:simple-page-master master-name="Screen169" 
     page-height="1080px" page-width="1920px" margin="0" background-image="Screen169.svg" 
     background-color="#fecc6c" background-repeat="repeat" 
     background-position-horizontal="center" background-position-vertical="center"> 

但是不起作用。它不會呈現背景顏色,也不會呈現背景圖像。 即使頁面沒有完全覆蓋文字,圖像也應該填滿整個頁面。 我能做什麼?

回答

0

背景屬性apply to page regions以及塊級和內聯級格式化對象,但它們不適用於頁面大師

而且,它們的值不會繼承,所以在一個元素上設置它們對它的後代沒有影響。

只需將它們設置在fo:region-body上,就可以得到想要的結果。

+0

感謝您的提示。有用。 – bibodo

+0

如果答案有幫助,請考慮[接受它](http://stackoverflow.com/help/someone-answers)。 – lfurini

+1

如果背景圖像是整頁上的區域 - 之前或之後,它將不會填充整個頁面,如果您正在使用region-body的圖像。而是使用region-before作爲背景圖像,並將範圍設置爲整個頁面高度。 –

0

您不能在主人身上使用背景屬性,但不需要將背景剪下來以適應您的個人區域。 您只需將背景圖像作爲外部圖形加載到絕對定位的容器中。將這個絕對定位的容器放置在左上角(區域之前,區域之初,區域之間......)的任何位置,並且它將呈現在其後的所有內容之下。

E.g.我有一個區域佈局 - 在拿出頁面的其餘部分之後,在獲取A4頁面的頂部40毫米以及區域身體和區域之前。

因此:

<fo:page-sequence master-reference="mya4"> 
      <fo:static-content flow-name="region-before"> 
       <!-- this absolutely positioned container renders 
        a full size background image --> 
       <fo:block-container width="210mm" left="0mm" top="0mm" 
        height="297mm" position="absolute"> 
        <fo:block> 
         <fo:external-graphic 
          content-height="297mm" 
          src="/a4-bg.pdf"/> 
        </fo:block> 
       </fo:block-container> 
       <!-- all other content must follow after background --> 
       <!-- all other region-before stuff goes here--> 
      <fo:flow flow-name="body"> 
       <fo:block>...</fo:block> 
      </fo:block> 
    </fo:page> 

使A4-bg.pdf作爲一個完整的頁面背景的所有其它頁面元素下面。

我在FOP 2.1的生產環境中使用它,但它也適用於較舊的FOP版本。

相關問題