XSL не работает и разрыв страницы не работает

Я попробовал следующие предложения, и ни один не сработал, мой <fo:block> продолжает разделяться между двумя внутренними блоками.

<fo:block keep-with-next="always" page-break-inside="avoid">
  <fo:block keep-together="always">
    Block # 1, a header
  </fo:block>

  <fo:block keep-together="always">
    Block # 2, a bunch of text
  </fo:block>
</fo:block>

Как я могу держать два внутренних блока вместе на странице? Я использую FO.NET, в случае, если у этого есть ограничения.

1 ответ

Я думаю, что вы должны связаться с людьми FO.NET. Тестирование этого примера с RenderX XEP и Apache FOP дает 3 страницы вывода. В 10.36 в весь текст вашего блока помещается на странице, в 10.37 в это не помещается. В обоих продуктах весь контент в вашем блоке перемещен на следующую страницу. Обратите внимание, что единственным обязательным тегом является page-break-inside="избежать", больше ничего.

        <fo:flow flow-name="xsl-region-body">
            <fo:block>Space</fo:block>
            <fo:block space-before="10.36in">I Generate One Page</fo:block>
            <fo:block page-break-inside="avoid">
                <fo:block >
                    Block # 1, a header
                </fo:block>
                <fo:block>
                    Block # 2, a bunch of text
                </fo:block>
            </fo:block>
            <fo:block break-before="page">I Generate Two Pages</fo:block>
            <fo:block space-before="10.37in">Space</fo:block>
            <fo:block page-break-inside="avoid">
                <fo:block >
                    Block # 1, a header
                </fo:block>
                <fo:block>
                    Block # 2, a bunch of text
                </fo:block>
            </fo:block>
        </fo:flow>

Просматривая веб-сайт FO.NET, он не обновлялся с 2009 года. Я не вижу ничего об их (отсутствии) поддержки хранилищ, но, поступая от другого поставщика XSL FO, хранилища довольно сложно сделать правильно в коде.

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