2015-09-21 6 views
1

Я пытаюсь установить фоновое изображение для простого мастера страниц в FOP 2.0. Я попытался следующий код:Как определить фоновое изображение для мастера страницы в Apache FOP 2.0

<fo:simple-page-master master-name="Screen169" 
     page-height="1080px" page-width="1920px" margin="0" background-image="Screen169.svg" 
     background-color="#fecc6c" background-repeat="repeat" 
     background-position-horizontal="center" background-position-vertical="center"> 

, но не работает. Он не отображает фоновый цвет и фоновое изображение. Изображение должно заполнять всю страницу, даже если страница не полностью покрыта текстом. Что мне делать?

ответ

0

Фоновые свойства apply to page regions и для объектов форматирования на уровне блока и встроенного уровня, но они не применяются к страницам мастеров.

Кроме того, их значение не наследуется, поэтому установка их на элемент не влияет на его потомков.

Просто установите их на fo:region-body, и вы должны получить желаемый результат.

+0

Спасибо за этот отзыв. Оно работает. – bibodo

+0

Если ответ был полезен, рассмотрите [его принятие] (http://stackoverflow.com/help/someone-answers). – lfurini

+1

Если фоновое изображение является полной страницей, у вас есть область до или после, она не заполняет всю страницу, если вы используете область тела для изображения. Вместо этого используйте background-background для фонового изображения и установите размер полной высоты страницы. –

0

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

E.g. У меня есть макет с областью - перед тем, как взять верхнюю 40-миллиметров страницы формата А4 с областью тела и регионом, после того, как остался на моей странице.

Таким образом:

<fo:page-sequence master-reference="mya4"> 
      <fo:static-content flow-name="region-before"> 
       <!-- this absolutely positioned container renders 
        a full size background image --> 
       <fo:block-container width="210mm" left="0mm" top="0mm" 
        height="297mm" position="absolute"> 
        <fo:block> 
         <fo:external-graphic 
          content-height="297mm" 
          src="/a4-bg.pdf"/> 
        </fo:block> 
       </fo:block-container> 
       <!-- all other content must follow after background --> 
       <!-- all other region-before stuff goes here--> 
      <fo:flow flow-name="body"> 
       <fo:block>...</fo:block> 
      </fo:block> 
    </fo:page> 

оказывает a4-bg.pdf в качестве полной фона страницы под все другие элементы страницы.

Я использую это в производственной среде на FOP 2.1, но он должен работать и для более старых версий FOP.