Как добавить динамический заголовок на всех страницах при генерации pdf из XML с использованием XSL: FO с использованием fop? - PullRequest
0 голосов
/ 22 мая 2019

Мне нужно сгенерировать динамический, а не статический заголовок, значение которого берется из файла xml. Я использую XSl: FO для генерации pDF с использованием XML. Я хочу добавить раздел Ссылки для всехстраниц.

XSl-файл:

`<xsl:template match="References">
    <fo:block-container height="12cm" width="5cm" top="15mm" left="12cm" position="absolute">
        <fo:block font-size="8pt" font-family="Verdana">
            <xsl:apply-templates/>
        </fo:block>
    </fo:block-

'

XML-файл:

            <Referentces>
                <lbl>Date</lbl>
                <div>$date</div>
                <lbl>From</lbl>
                <div>$brief.owner</div>
                <div>T $brief.tel</div>
                #if($brief.fax)
                <div>F $brief.fax</div>
                #end
              </Referenties>

Как вызвать этот блок, чтобы он отображался во всехстраницы автоматически?

1 Ответ

1 голос
/ 22 мая 2019

В XSL FO вы не размещаете блок-контейнер в абсолютном положении, чтобы попытаться создать повторяющиеся заголовки.Он будет размещен только на той странице, на которой он находится, а не на всех страницах.

Вы используете static-content для xsl-region-before.Итак, ваша последовательность страниц должна выглядеть примерно так:

 <fo:page-sequence master-reference="page">
      <fo:static-content flow-name="xsl-region-before">
          <fo:block>This is content on every page</fo:block>
      </fo:static-content>
      <fo:flow flow-name="xsl-region--body">
          <!-- body content here -->
      </fo:flow>
  </fo:page-sequence>

Вы можете определить размер областей заголовка и тела в layout-master-set для рассматриваемого master-страницы.

Теперь, если у вас есть динамический контент в этом заголовке, который зависит от того, в каком разделе / ​​странице вы находитесь, то вы используете fo: marker и fo: retrieve-marker, чтобы извлечь этот контент со страницы, в которой вы находитесь, в заголовок.

См. http://www.renderx.com/tutorial.html#Markers для обучения по маркерам и тому, как их использовать для извлечения информации в статические области.

...