28

我需要在同一行上左右对齐文本。这应该是可能的,但我似乎找不到办法。我正在使用 Apache FOP 将 xml 转换为 pdf。

有人可以帮我解决这个问题吗?

4

6 回答 6

46

优雅不是一个明确的要求,但这应该符合要求:

<fo:block text-align-last="justify">
  LEFT TEXT
  <fo:leader leader-pattern="space" />
  RIGHT TEXT
</fo:block>

这通过对齐块中的最后一行文本来工作,以便文本从该行的左侧开始并在右侧结束。通常在目录页面上使用的前导符会拉伸以填充左右文本之间的空间。通常它被用作<fo:leader leader-pattern="dots" />,这会产生一段时期,但在这种情况下,它只是提供了一个空间的鸿沟。

于 2009-02-26T12:21:05.420 回答
12

这可以解决问题:

<fo:table>
  <fo:table-column />
  <fo:table-column />

  <fo:table-body>
    <fo:table-row>
      <fo:table-cell>
        <fo:block>LEFT TEXT</fo:block>
      </fo:table-cell>
      <fo:table-cell>
        <fo:block text-align="right">RIGHT TEXT</fo:block>
      </fo:table-cell>
    </fo:table-row>
  </fo:table-body>
</fo:table>
于 2009-02-25T15:17:34.553 回答
5
<fo:inline-container vertical-align="top" inline-progression-dimension="49.9%">
    <fo:block>left content</fo:block>
</fo:inline-container>
<fo:inline-container vertical-align="top" inline-progression-dimension="49.9%">
    <fo:block>right-content</fo:block>
</fo:inline-container>

经验证可使用 FOP 2.0

于 2015-08-22T21:37:35.043 回答
0

我现在没有时间对此进行测试,但请查看http://www.w3.org/TR/xsl/#fo_float

一个向右浮动另一个向左浮动 - 如果我想做你所描述的事情,我会试一试

你也可以用一张桌子

除非右对齐和左对齐,否则您的意思是合理的...

于 2009-02-02T22:59:16.443 回答
0

我创建了两个块,并在第二个块上设置了这个属性:

margin-top="-4mm"

或者你的字体大小和边距底部是什么(只是看起来它们在同一行)

于 2016-12-21T11:47:28.670 回答
-1

这是可能的,我不确定确切的输出是什么,但您是否尝试过:

<fo:block-container>
   <fo:block text-align="left">text</fo:block>
   <fo:block text-align="right">text</fo:block>
</fo:block-container >

我有一段时间没有做过 XSLFO,但我当然可以推荐 Stylus Studio 用于 XSL-FO 开发(以及一般的 XML),应用内调试和预览让我在按时完成最后期限时节省了时间。您也可以使 Stylus 与 Apache FOP 处理器一起工作。

PS:如果我在家里也正确设置了 Apache FOP 等,我会仔细检查。

于 2008-12-24T16:38:13.470 回答