Я использую inline-контейнеры для рендеринга серии изображений.Мой исходный файл имеет 5 абзацев, каждый из которых содержит 1 изображение.
<para stylename="Numbered Figure">
<image file="P_1568.pdf" width="7.90cm" height="12cm"/>
</para>
У меня есть страница формата А4, где есть место для двух этих изображений рядом и двух друг над другом.
Мой FO:
<xsl:when test="@stylename = 'Numbered Figure'">
<fo:block widows="1" orphans="1">
<fo:inline-container width="descendant::image/@width">
<fo:external-graphic src="descendant::image/@file">
<fo:block-container>
code for placing a number in the top left corner of the image
</fo:block-container>
</fo:inline-container>
<fo:block>
Это результат: встроенные контейнеры не переносятся на следующую страницу, а переполняют страницу.
Похоже, что 5 встроенных контейнеров обрабатываются как одно слово, поэтому я попытался добавить пробел между каждым встроенным контейнером:
</fo:inline-container><fo:inline><xsl:text> </xsl:text></fo:inline>
Это приводит к изображению 4 и5 перенос на вторую страницу вместо моего намерения иметь изображение 1-4 на первой странице.Пробел слишком большой, изображение 3 + 4 + пробел не умещается на одной строке.
Я попытался использовать пробел нулевой ширины (U + 200B), но затем изображения снова переполняются на странице 1.
То, что я пробовал до сих пор, все безуспешно:
- добавление fo: inline, содержащего символ пробела после каждого встроенного контейнера
- с указанием вдов =«1» orphans = «1» на содержащем fo: block
Моя цель - перенести изображение 5 на вторую страницу.Могу ли я установить атрибут, разрешающий разрыв между 2 встроенными контейнерами?
(мне нужен встроенный контейнер, потому что я помещаю текстовый элемент поверх каждого изображения).Использование Antennahouse Formatter.
Редактировать: Это может быть проблемой в Antennahouse Formatter.Когда мой источник содержит 7 изображений, изображения размещаются правильно (4 изображения на странице 1, 3 изображения на странице 2).