Почему этот блок-контейнер форсирует вторую страницу? - PullRequest
1 голос
/ 31 марта 2011

У меня есть таблица стилей XSL-FO, внутри которой есть SVG, размер которой равен всей странице. Я пытаюсь абсолютно позиционировать изображение поверх SVG. Когда я добавляю это изображение, вторая страница принудительно выводится на вывод PDF. Без блока или SVG есть только одна страница. Вот код:

<xsl:template match="MyTag"> 
  <fo:block>
    <fo:block-container absolute-position="absolute" top="110px" left="557px" height="185px" width="160px">
      <fo:block>
        <fo:external-graphic>
          <xsl:attribute name="src">
            <xsl:value-of select="Image"/>
          </xsl:attribute>
          <xsl:attribute name="content-height">185px</xsl:attribute>
        </fo:external-graphic>
      </fo:block>
    </fo:block-container>
    <fo:instream-foreign-object>
      <svg>
        <!-- The full page sized SVG created by Inkscape here -->
      </svg>
    </fo:instream-foreigh-object>
  </fo:block>
</xsl:template>

Есть идеи, что я сделал бы неправильно, что заставляет эту вторую пустую страницу? Насколько я понимаю, если что-то позиционируется абсолютно, это не должно влиять на поток элементов, но, похоже, здесь.

Для чего бы то ни было, я изначально пытался поместить изображение в виде тега <image> внутри SVG, но оно так и не появилось, я не уверен, что это проблема с рендером pdf (IBEX) или каким-то другим проблема, поэтому я пытаюсь сделать это, чтобы обойти это.

1 Ответ

0 голосов
/ 06 апреля 2011

Я разобрался. По сути, я изменил блок, содержащий <svg>, таким образом:

<fo:block-container absolute-position="absolute" height="5in">
    <fo:block>
        <fo:instream-foreign-object>
            <svg>
                <!-- The full page sized SVG created by Inkscape here -->
            </svg>
        </fo:instream-foreigh-object>
    </fo:block>
</fo:block-container>

Поскольку блок абсолютно позиционирован, SVG полного размера страницы может выходить за пределы своего 5-дюймового блока, но это заставляет менеджера макета думать, что у него достаточно места для изображения и SVG на одной странице делает).

...