Встроенное выравнивание XSL FO

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

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

Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
Включение UTF-8 в jsPDF с помощью Angular
Включение UTF-8 в jsPDF с помощью Angular
Привет, разработчики, я предполагаю, что вы уже знаете, как экспортировать pdf через jsPDF. Если ответ отрицательный, то вы можете ознакомиться с моей...
25
0
35 314
6
Перейти к ответу Данный вопрос помечен как решенный

Ответы 6

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

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

Не работает. Два элемента находятся на разных строках, а не на одной строке.

Ikke 24.12.2008 20:07

У меня сейчас все настроено дома (в любом случае необходимо), не могли бы вы уточнить, чего вы хотите, и почему fo: table не работает?

Martijn Laarman 24.12.2008 20:34

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

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

вы также можете использовать стол

если под выровненным вправо и влево вы имеете в виду оправданный ...

Жаль, что Apache FOP не поддерживает fo: float.

Ikke 03.02.2009 10:48

alt soft, www.alt-soft.com, пакет, который я использую, недавно добавил его поддержку. У меня еще не было возможности попробовать это, хотя

EthR 03.02.2009 23:56

Это поможет:

<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>

работал у меня, спасибо (я добавил ширину таблицы и столбцов)

Haroon 28.08.2012 16:30

Также работает на уровне таблицы. +1

MonoThreaded 17.01.2013 19:03
Ответ принят как подходящий

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

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

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

Вау ... Наконец-то изящное решение. Я ВСЕГДА строю для этого сложные однострочные таблицы. Спасибо!

Sauer 07.02.2017 20:04
<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

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

margin-top = "-4mm"

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

Другие вопросы по теме