繁体   English   中英

XSL:FO用fo:leader填充fo:block

[英]XSL:FO Fill fo:block with fo:leader

我想用<fo:leader leader-length.minium="1in"/ >填充我的代码块,然后用可变文本(长度)填充其余代码。

问题是如果文本的内容需要更多的空间,则实际的列有一个带有一个虚线和一个文本行的换行符。

我使用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)

之所以发生换行(AFAICT),是因为AH Formatter无法容纳最小行距加上一行上的文本,然后将其拆分为两行时,行距扩展到了4英寸的最佳长度。

解决:

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

    text-align-lasthttps://www.w3.org/TR/xsl11/#text-align-last )适用于(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等。

    具有默认leader-length值的fo:leader现在将展开以填充可用空间。

  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>

格式化示例的屏幕截图。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM