Я использую встроенные контейнеры для рендеринга серии изображений. В моем исходном файле 5 абзацев, каждый из которых содержит 1 изображение.
<para stylename="Numbered Figure">
<image file="P_1568.pdf" width="7.90cm" height="12cm"/>
</para>
У меня есть страница формата А4, на которой есть место для двух изображений рядом и двух друг над другом.
My 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, содержащего символ пробела, после каждого встроенного контейнера
- указание widows="1" orphans="1" в содержащем fo:block
Моя цель - перенести изображение 5 на вторую страницу. Есть ли атрибут, который я могу установить, чтобы разрешить разрыв между двумя встроенными контейнерами?
(Мне нужен встроенный контейнер, потому что я помещаю текстовый элемент поверх каждого изображения). Использование форматирования Antennahouse.
Изменить: это может быть проблемой в Antennahouse Formatter. Когда мой источник содержит 7 изображений, изображения размещаются правильно (4 изображения на странице 1, 3 изображения на странице 2).
fo:external-graphic
— FO встроенного уровня. Это не должно быть дочерним элементомfo:inline-container
. См. w3.org/TR/xsl11/#d0e6532. - person Tony Graham   schedule 23.05.2018