XSL-FO устанавливает минимальную ширину по умолчанию для встроенного текста - PullRequest
2 голосов
/ 30 декабря 2010

Я пишу документ XSL-FO и хочу установить значения минимальной ширины для некоторых встроенных элементов.Например, в следующей структуре

|    FirstName:         string1         LastName:         string2         |

, где "string1" и "string2" - данные из моего XML, а "|" обозначает левую и правую границы, я хочу получить следующие результаты

|    FirstName:    John     LastName:   Smith                             |
|    FirstName:             LastName:   Smith                             |
|    FirstName: SomeVeryVeryLongFirstNameOfSomePerson  LastName:  Smith   |

когда соответствующие люди ("Джон", "Смит", "" Смит "," SomeVery ... "" Смит ") загружаются из XML.

В основном мне нужно что-то вроде этого

<fo:block> 
FirstName: <fo:inline min-width="50mm"> <xsl:value-of ...> </fo:inline> LastName: <fo:inline min-width="50mm"> <xsl:value-of ...> </fo:inline>
</fo:block>

, но это не работает (минимальная ширина игнорируется).Я пробовал min-width на fo: block, пробовал inline-progression-dimension, block-progression-dimension, какой-то обходной путь с fo: table, но ничего не работает, или я делаю это неправильно.Я использую Apache FOP 1.0.

Может кто-нибудь помочь?Заранее спасибо

1 Ответ

0 голосов
/ 24 февраля 2017

У меня тоже была эта проблема, и после некоторого поиска в Интернете я нашел решение: используйте fo:inline-container с желаемой шириной и fo:block внутри, где вы помещаете свой текст:

<fo:inline-container text-align="center" width="1cm">
  <fo:block border-bottom="0.5pt solid #000">
    <xsl:value-of select="your/xpath/selector"/>
  </fo:block>
</fo:inline-container>

Просто замените width и selector в соответствии с вашими потребностями. Этот пример также включает в себя нижнюю строку, которая мне была нужна, но это не обязательно: просто удалите border-bottom из fo:block, если вам это не нужно. См. Как получить фиксированную ширину для встроенного FO? для исходного решения и деталей.

...