Несколько inline-контейнеров в одном блоке - они не могут быть разбиты на следующую страницу
Я использую inline-контейнеры для рендеринга серии изображений. Мой исходный файл имеет 5 абзацев, каждый из которых содержит 1 изображение.
<para stylename="Numbered Figure">
<image file="P_1568.pdf" width="7.90cm" height="12cm"/>
</para>
У меня есть страница формата А4, где есть место для двух из этих изображений рядом и 2 друг над другом.
Мой ФО:
<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, содержащего пробельные символы после каждого inline-контейнера
- указание widows="1" orphans="1" на содержащем fo: блок
Моя цель - перенести изображение 5 на вторую страницу. Могу ли я установить атрибут, разрешающий разрыв между 2 встроенными контейнерами?
(Мне нужен inline-контейнер, потому что я помещаю текстовый элемент поверх каждого изображения). Использование Antennahouse Formatter.
Изменить: Это может быть проблемой в Antennahouse Formatter. Когда мой источник содержит 7 изображений, изображения размещаются правильно (4 изображения на странице 1, 3 изображения на странице 2).
1 ответ
Установите оба widows
а также orphans
до 1, чтобы блок мог сломаться и поставить только одну строку на следующей странице.
<fo:block widows="1" orphans="1">
<fo:inline-container width="7.90cm" height="12cm">
<fo:block><fo:external-graphic src="ah-logo.svg" /></fo:block>
</fo:inline-container>
<fo:inline-container width="7.90cm" height="12cm">
<fo:block><fo:external-graphic src="ah-logo.svg" /></fo:block>
</fo:inline-container>
<fo:inline-container width="7.90cm" height="12cm">
<fo:block><fo:external-graphic src="ah-logo.svg" /></fo:block>
</fo:inline-container>
<fo:inline-container width="7.90cm" height="12cm">
<fo:block><fo:external-graphic src="ah-logo.svg" /></fo:block>
</fo:inline-container>
<fo:inline-container width="7.90cm" height="12cm">
<fo:block><fo:external-graphic src="ah-logo.svg" /></fo:block>
</fo:inline-container>
</fo:block>