2014-12-31 95 views
-1

左頁面和右頁面內容可能有不同的頁面邊框。例如,左頁面區域主體在左側僅具有邊界;只有右側邊界的右頁「region-body」。XSL FO內容頁面左右頁面不同

我能夠爲左/右頁面實現不同的頁眉和頁腳。對於頁面內容邊框應根據左/右頁面放置。

我對左右內容頁面使用了2個簡單頁面主頁;但頁面主人不支持邊框,並導致例外「區域主體邊框應爲零」。 這裏是他的示例代碼:

<fo:layout-master-set> 
    <fo:simple-page-master master-name="left_pages"> 
    <fo:region-body margin-top="20mm" margin-bottom="10mm" border-left="1" />      
    </fo:simple-page-master> 

    <fo:simple-page-master master-name="right_pages"> 
    <fo:region-body margin-top="20mm" margin-bottom="10mm" border-right="1"/>     
    </fo:simple-page-master>  
</fo:layout-master-set> 

謝謝。

+0

@霍布斯:保證金不是問題;但需要有邊界.. – rubavathy

+0

你必須使用解決方法來創建邊框在這裏,看到我的答案。 – Hobbes

回答

0

在XSL-FO中,borders and margins有所不同。您不能set a border for the body region,您必須改爲使用餘量。

要獲得bodyregion的邊框,您必須使用解決方法。

  • 您可以將邊框作爲圖像添加到開始區域。你可以在這個區域插入一個大的圖形,它將在整個頁面上延伸。創建邊框圖像的最簡單方法是使用SVG code創建一個矩形。
  • 另一種選擇是在每個頁面上使用具有絕對位置和大小(與主體區域大小相同)的塊容器。
0

如果您正在使用Apache FOP處理您的FO文件,您可以通過使用避免對區域邊界的錯誤消息-r(爲[R elaxed驗證)命令行選項:

fop -r input.fo output.pdf 

你仍然會得到一個警告告訴你區域邊界應該是0,但是處理將繼續並且邊界將被創建。

+0

Apache FOP未被使用。這是撒克遜xsl Fo發動機.. – rubavathy

+0

你確定嗎?據我所知,Saxon是一個XSLT處理器(使用XSLT將XML轉換爲XSL-FO),並且您需要一個格式化器來從XSL-FO文件創建一個PDF。我知道的其他格式化程序,包括[RenderX XEP](http://www.renderx.com/reference.html#Border_Padding)和[AntennaHouse XSLFormatter](http://www.antennahouse.com/CSSInfo/extension.html #IDABKMGB)支持沒有特殊配置的區域邊界。 – lfurini