如何用XEP RenderX XSLFO强制包裹一系列内联对象。

问题描述 投票:1回答:1

下面的图片是我通过RenderX XEP生成的PDF中的一个片段。这个片段包含了一系列超链接的关键词,它们之间有填充物。很明显,这一行没有封装,正因为如此,每个字的文本都被压缩了。

compressed keywords

生成这个片段的代码是:

     <fo:block-container wrap-option="wrap" space-after="10pt">
        <fo:block space-after="5pt">
             <fo:inline font-weight="bold">Keywords</fo:inline>
        </fo:block>
        <fo:block wrap-option="wrap" start-indent="20pt">
             <fo:inline padding-right="10pt">
                 <fo:basic-link color="blue" external-destination="http://example.com">Boat</fo:basic-link>
              </fo:inline>
              <fo:inline padding-right="10pt">
                  <fo:basic-link color="blue" external-destination="http://example.com">Dragon</fo:basic-link>
              </fo:inline>
               [...]
         </block>
     </fo:block-container>

我无法确定是哪个属性允许 fo:inline 对象进行包装。我尝试了 keep-together="no" 关于 fo:block 而在 fo:inline但它们是不允许的。

我缺了什么,才会允许这一系列的 inline的包装?

非常感谢。

xsl-fo
1个回答
2
投票

填充物不算是空格,所以断行算法没有任何工作可做。

你可以使用 &#x200B; 插入一个零宽度的空格,而不是零宽度的空间。&#32; 为一个普通的空格。

您可以使用一个10pt的空格字符。

<fo:basic-link color="blue" external-destination="http://example.com">Boat</fo:basic-link>
<fo:inline width="10pt"> </fo:inline>

(不要在你生成的XSL -FO中加入换行符 否则在你的输出中会有一个常规空格和一个10pt空格)

© www.soinside.com 2019 - 2024. All rights reserved.