2012-06-13 145 views
3

我試圖通過使用帶FOP的XSL-FO生成pdf文件。XSL-FO表固定高度

我想顯示一個固定高度的表格。表格可以分成幾頁,我希望它在每個頁面上具有相同的高度。

我似乎甚至無法爲單個頁面上的表格定義固定高度。

我試着在桌子和桌子上設置高度,最小高度,最大高度,但似乎沒有考慮到任何東西。我也嘗試過使用不同的XSL-FO處理器,但沒有任何運氣。

小樣本:

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="1.1" 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="simpleA4" page-height="29.7cm" page-width="21cm" margin-top="1cm" margin-bottom="1cm" margin-left="2cm" margin-right="2cm"> 
        <fo:region-body margin-bottom="20mm"/> 
        <fo:region-after extent="10mm"/> 
       </fo:simple-page-master> 
      </fo:layout-master-set> 
      <fo:page-sequence master-reference="simpleA4"> 
       <fo:flow flow-name="xsl-region-body"> 
        <fo:block> 
         <fo:table table-layout="fixed" width="100%" height="10cm" border-style="solid" border-width="0.02cm"> 
          <fo:table-column column-width="20%"/> 
          <fo:table-column column-width="20%"/> 
          <fo:table-column column-width="60%"/> 
          <fo:table-body> 
           <fo:table-row> 
            <fo:table-cell> 
             <fo:block>Col1</fo:block> 
            </fo:table-cell> 
            <fo:table-cell> 
             <fo:block>Col2</fo:block> 
            </fo:table-cell> 
            <fo:table-cell> 
             <fo:block>Col3</fo:block> 
            </fo:table-cell> 
           </fo:table-row> 
          </fo:table-body> 
         </fo:table> 
        </fo:block> 
       </fo:flow> 
      </fo:page-sequence> 
     </fo:root> 
    </xsl:template> 
</xsl:stylesheet> 
+0

行數是否有所不同? – mzjn

+0

是的......他們每個人的身高也是......如果他們中有破折號。 – david

回答

1

在您需要在<fo:table-cell單獨工作,對高度,字體大小...等FOP。 你需要做到以下幾點:

  1. 拿上你會爲每個 頁
  2. 計算出可安裝在 空間
  3. 表的行數提供對錶空間的筆記
  4. 在循環中創建一個新表中的每個頁面提供的每個頁面將舉行
  5. 記住帽子保持表的標題將只建造 僅第一頁的 行數和表其他頁面必須 被無端構建