Линейное выравнивание XSL FO - PullRequest
       15

Линейное выравнивание XSL FO

25 голосов
/ 24 декабря 2008

Мне нужно выровнять текст вправо и влево на одной строке. Это должно быть возможно, но я не могу найти способ. Я использую Apache FOP для преобразования XML в PDF.

Может ли кто-нибудь помочь мне понять это правильно?

Ответы [ 6 ]

43 голосов
/ 26 февраля 2009

Элегантность не была заявленным требованием, но это должно отвечать всем требованиям:

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

Это работает путем выравнивания последней строки текста в блоке, так что текст начинается слева от строки и заканчивается справа. Лидер, который обычно используется на страницах оглавления, растягивается, чтобы заполнить пространство между левым и правым текстом. Обычно он используется как <fo:leader leader-pattern="dots" />, который производит периоды, но в этом случае он просто обеспечивает пропасть пространства.

12 голосов
/ 25 февраля 2009

Это поможет:

<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>
4 голосов
/ 23 августа 2015
<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

0 голосов
/ 21 декабря 2016

Я создаю два блока и на втором блоке я устанавливаю этот атрибут:

margin-top="-4mm"

или какой у вас размер шрифта и нижняя часть поля (просто чтобы они были на одной линии)

0 голосов
/ 03 февраля 2009

У меня сейчас нет времени, чтобы проверить это, но посмотрите http://www.w3.org/TR/xsl/#fo_float

плавающий один правый плавающий другой левый - я бы попробовал, если бы хотел сделать то, что вы описываете

Вы также можете использовать таблицу

Если вы не выровнены по правому и левому краям, вы имеете в виду оправдано ...

0 голосов
/ 24 декабря 2008

Это возможно, я не уверен, какой именно вывод, но вы пробовали:

<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 и т. Д. Дома.

...