web-dev-qa-db-ja.com

XSL FOインラインアライメント

同じ行にテキストを左右に揃える必要があります。これは可能であるはずですが、私は方法を見つけることができないようです。私はApacheFOPを使用してxmlをpdfに変換しています。

誰かが私がこれを正しくするのを手伝ってくれる?

25
Ikke

エレガンスは明確な要件ではありませんでしたが、これは法案に適合するはずです。

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

これは、ブロック内のテキストの最後の行を揃えることで機能し、テキストは行の左側で始まり、右側で終わります。通常、目次ページで使用されるリーダーは、左右のテキスト間のスペースを埋めるために伸びます。通常は<fo:leader leader-pattern="dots" />として使用され、一連の期間が生成されますが、この場合は単にスペースの湾を提供します。

44
Hilton Campbell

これでうまくいきます:

<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>
12
Hilton Campbell
<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>

FOP2.0での動作を確認

4
rstormer

今はこれをテストする時間がありませんが、チェックしてください http://www.w3.org/TR/xsl/#fo_float

片方を右に浮かせてもう片方を左に浮かせてください-あなたが説明していることをやろうと思っていたら、私はそれを試してみます

テーブルを使用することもできます

右と左に整列しない限り、正当化されることを意味します...

0
EthR

2つのブロックを作成し、2番目のブロックで次の属性を設定します。

margin-top="-4mm"

または、フォントサイズと余白の下部が何であるか(同じ行にあるように見せるため)

0