2015-04-23 2 views
0

Привет, ребята, я хочу преобразовать xslt мой xml-файл в документ xsl: fo. Моя проблема, как я могу переключить заголовок для правой и левой страниц (поочередно) после каждой страницы.Переключить заголовок и нижний колонтитул после каждой страницы

С моим решением теперь я получаю только одну страницу.

Я использую Saxon HE и XSLT 2.0

мой XSL: FO Файл:

<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> 
 
\t <fo:layout-master-set> 
 
\t \t <!-- Right Page --> 
 
\t \t <fo:simple-page-master master-name="rightPage"> 
 
\t \t \t <fo:region-body region-name="body" margin="20mm 0mm 20mm 0mm"/> 
 
\t \t \t <fo:region-before region-name="rightPageHeader" extent="5in"/> 
 
\t \t </fo:simple-page-master> 
 
\t \t 
 
\t \t <!-- Left Page --> 
 
\t \t <fo:simple-page-master master-name="leftPage"> 
 
\t \t \t <fo:region-body region-name="body" margin="20mm 0mm 20mm 0mm"/> 
 
\t \t \t <fo:region-before region-name="leftPageHeader" extent="5in"/> 
 
\t \t </fo:simple-page-master> 
 
\t \t 
 
\t \t <fo:page-sequence-master master-name="pages"> 
 
\t \t \t <fo:repeatable-page-master-alternatives> 
 
\t \t \t \t <fo:conditional-page-master-reference master-reference="rightPage" odd-or-even="odd"/> 
 
\t \t \t \t <fo:conditional-page-master-reference odd-or-even="even" master-reference="leftPage"/> 
 
\t \t \t </fo:repeatable-page-master-alternatives> 
 
\t \t </fo:page-sequence-master> \t \t 
 
\t </fo:layout-master-set> 
 

 
\t <fo:page-sequence master-reference="pages"> \t \t \t 
 
\t \t <fo:static-content flow-name="rightPageHeader"> 
 
\t \t \t <fo:block> 
 
\t \t \t \t <fo:block text-align="left" font-weight="bold">Standard configuration</fo:block> 
 
\t \t \t \t <fo:block text-align="right"> 
 
\t \t \t \t \t <fo:external-graphic src="headerHico.jpg" height="2.00in" width="2.00in"/> 
 
\t \t \t \t </fo:block> 
 
\t \t \t </fo:block> 
 
\t \t </fo:static-content> 
 
\t \t 
 
\t \t <fo:static-content flow-name="leftPageHeader"> 
 
\t \t \t <fo:block> 
 
\t \t \t \t <fo:block text-align="left"> 
 
\t \t \t \t \t <fo:external-graphic src="headerHico.jpg" height="2.00in" width="2.00in"/> 
 
\t \t \t \t </fo:block> 
 
\t \t \t </fo:block> 
 
\t \t </fo:static-content> 
 
\t 
 
\t \t <fo:flow flow-name="body"> 
 
\t \t \t <fo:block> 
 
\t \t \t \t <xsl:apply-templates select="/"/> 
 
\t \t \t </fo:block> 
 
\t \t </fo:flow> \t 
 
\t </fo:page-sequence> 
 
</fo:root>

Я надеюсь, что кто-то может помочь мне :)

ответ

0

Ваша страница геометрии Определение .

Однако, если ваш содержание коротка и помещается в одной странице, только одна страница будет создана (с помощью rightPage мастера).

Если вы хотите проверить, как вид страниц, вы можете добавить этот fo:block после существующего:

 <fo:block break-before="page"> 
      This will be placed on another page. 
     </fo:block> 

Несовершеннолетний наблюдение: на данный момент, region-before в обоих ваших страниц мастеров выше, чем region-body (5 дюймов> 20 мм), что может привести к перекрытию , если заголовки содержат много строк.
Обычно я устанавливаю другой background-color для каждого региона страницы, когда создаю новый page-master, так что я могу легко увидеть их измерение, пока не удовлетворится результатом.

+0

спасибо человеку, что я проверю его в понедельник Мой XML-файл большой, если я использую другой заголовок, я получаю 30 страниц или около того;) – Franz

+0

@Franz Если ваш контент длинный, и многие страницы созданы, вы * должны * определенно получить чередующиеся 'leftPage' и 'rightPage'; это не произойдет, может быть что-то не так с обработчиком объектов форматирования, который вы используете. – lfurini

+0

Я использую кислород и процессор Saxon HE – Franz

Смежные вопросы