2016-07-07 54 views
0

我想用<fo:leader leader-length.minium="1in"/ >填充我的塊,然後用可變文本(長度)填充剩餘的塊。XSL:FO填充fo:block with fo:leader

問題是如果文本的內容需要更多的空間,那麼實際的列有一個點線和一個文本行的換行符。

我使用Antenna House和XSLT 2.0。

現在輸出示例:

 
1: | ................Text Text | 
2: |...........................| 
    |The Text is to long for the| 

正確的輸出

 
|... This is some Text | 
| of the text.... | 

XSLT代碼:

<fo:table-cell> 
    <fo:block text-align="justify" text-align-last="right"> 
     <xsl:if test="page"> 
     <fo:leader leader-pattern="dots" leader-length.minimum="1in" leader-length.optimum="4in" leader-length.maximum="4in"/> 
     </xsl:if> 
     <fo:inline ><xsl:apply-templates select="page" mode="normal"/></fo:inline></fo:block> 
    </fo:table-cell>  

我希望做出正確的輸出清晰。

 
|.... 10,15,2010| Five dots minimum 
|______2105,1| (_ blank), output align right) 
+0

如果我用的是領導者,length.optimum屬性是否能夠正常工作,但不換行。 – Franz

+0

正確的輸出在文本之前和之後都有一個領導者嗎? –

回答

2

換行符發生了什麼(AFAICT),因爲AH格式化可能不適合最小領導人加上一行文字,那麼當它被分裂成兩行,領導擴大到4英寸的你的最佳長度。

解決:

  1. 添加axf:text-align-first="justify"fo:block

    text-align-lasthttps://www.w3.org/TR/xsl11/#text-align-last)適用於(最後一個)塊區域的最後一個行區域子元素,即使它也是(唯一)塊區域的第一個行區域。 axf:text-align-firsthttps://www.antennahouse.com/product/ahf63/ahf-ext.html#axf.text-align-first)優先於text-align-last,所以axf:text-align-first="justify"證明了單行塊的正確性。

  2. 刪除leader-length.minimum

    fo:leader默認leader-length值現在將擴大以填充可用空間。

  3. (可選)將axf:leader-expansion="force"添加到fo:block

    axf:leader-expansionhttps://www.antennahouse.com/product/ahf63/ahf-ext.html#axf.leader-expansion)確實對領導力擴張做了更多的努力。

例子:

<fo:block-container width="2in" border="thin solid black"> 
    <fo:block text-align="justify" text-align-last="right" axf:text-align-first="justify"> 
     <fo:leader leader-pattern="dots"/>This is text</fo:block> 
    <fo:block text-align="justify" text-align-last="right" axf:text-align-first="justify"> 
     <fo:leader leader-pattern="dots"/>This is some of the text</fo:block> 
    <fo:block text-align="justify" text-align-last="right" axf:text-align-first="justify"> 
     <fo:leader leader-pattern="dots"/>This is some of the text plus a bit more</fo:block> 
    <fo:block text-align="justify" text-align-last="right" axf:text-align-first="justify"> 
     <fo:leader leader-pattern="dots"/>This is some of the text plus a whole lot more</fo:block> 
</fo:block-container> 

Screenshot of sample formatted.

+0

謝謝你終於工作:) – Franz