2015-04-30 3 views
2

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

код выглядит следующим образом:

<fo:layout-master-set> 
    <fo:simple-page-master master-name="Letter Page" page-width="8.3in" page-height="11.7in" 
     margin-top="0px" margin-bottom="0px" margin-right="0px" margin-left="0px"> 
     <fo:region-body region-name="xsl-region-body" 
      padding-top="0px" padding-bottom="0px" padding-left="0px" padding-right="0px" 
      margin-top="4.250cm" margin-bottom="2.750cm" margin-left="1.8cm" margin-right="1.8cm" 
      border-style="none" border-width="0px" border-color="" background="" background-repeat="no-repeat" background-position-horizontal="0px" background-position-vertical="0px" 
      extent="0px" column-gap="0px" column-count="1" reference-orientation="0"/> 
     <fo:region-before region-name="xsl-region-before" 
      display-align="after" extent="3.8cm" 
      padding-top="0px" padding-bottom="0px" padding-left="0px" padding-right="0px" 
      border-style="none" border-width="0px" border-color="" background="" background-repeat="no-repeat" background-position-horizontal="0px" background-position-vertical="0px" reference-orientation="0"/> 
     <fo:region-after region-name="xsl-region-after" 
      display-align="before" extent="2.750cm" 
      padding-top="0px" padding-bottom="0px" padding-left="0px" padding-right="0px" 
      border-style="none" border-width="0px" border-color="" background="" background-repeat="no-repeat" background-position-horizontal="0px" background-position-vertical="0px" reference-orientation="0"/> 
     <fo:region-start region-name="xsl-region-start" 
      extent="1.8cm" 
      padding-top="0px" padding-bottom="0px" padding-left="0px" padding-right="0px" 
      border-style="none" border-width="0px" border-color="" background="" background-repeat="no-repeat" background-position-horizontal="0px" background-position-vertical="0px" reference-orientation="0"/> 
     <fo:region-end region-name="xsl-region-end" 
      extent="1.8cm" 
      padding-top="0px" padding-bottom="0px" padding-left="0px" padding-right="0px" 
      border-style="none" border-width="0px" border-color="" background="" background-repeat="no-repeat" background-position-horizontal="0px" background-position-vertical="0px" reference-orientation="0"/> 
    </fo:simple-page-master> 
</fo:layout-master-set> 

Затем страница начинается

<fo:page-sequence master-reference="Letter Page"> 
    <fo:static-content flow-name="xsl-region-before" font-size="8pt" font-family="Arial"> 

Вслед за другими регионами и т.д. Я посмотрел, как вставить несколько титульных страниц, но я получаю ошибки при Я пытаюсь, и все, что я использую, это notepad ++ и рендеринг PDF каждый раз, когда я тестирую, поэтому он становится очень трудоемким процессом. Я решил просто бросить изображение в качестве титульной страницы, чтобы сэкономить некоторое время. Я знаю, что это FOP engine 1.0.

ответ

6

Вот простой пример, чтобы помочь вам в процессе:

<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> 
    <fo:layout-master-set> 
     <fo:simple-page-master page-width="8.5in" page-height="11in" master-name="Cover"> 
      <fo:region-body margin-top="0pt" background-color="red"/> 
      <fo:region-before extent="0pt"/> 
      <fo:region-after extent="0pt"/> 
     </fo:simple-page-master> 
     <fo:simple-page-master margin-top="1in" margin-left="1in" 
      margin-bottom="18pt" margin-right="18pt" 
      page-width="8.5in" page-height="11in" master-name="Pages"> 
      <fo:region-body margin-top="0pt"/> 
      <fo:region-before extent="0pt"/> 
      <fo:region-after extent="0pt"/> 
     </fo:simple-page-master> 
    </fo:layout-master-set> 
    <fo:page-sequence master-reference="Cover"> 
     <fo:flow flow-name="xsl-region-body"> 
      <fo:block text-align="center"> 
       I am a Cover Page, format me however you wish! 
      </fo:block> 
     </fo:flow> 
    </fo:page-sequence> 
    <fo:page-sequence master-reference="Pages"> 
     <fo:flow flow-name="xsl-region-body"> 
      <fo:block> 
       I am the rest of the text in the "Pages" page-sequence. 
      </fo:block> 
     </fo:flow> 
    </fo:page-sequence> 
</fo:root> 

Последовательность страницы «Обложка» может иметь все, что на нем вы хотите (я положил текст и сделал это красным), то «Страница» последовательность страниц содержит оставшуюся часть содержимого.

Это дает два страничный документ так:

enter image description here

+0

Спасибо большое. Я думаю, что в своем тестировании я продолжал испортить какой-то синтаксис или пропустил структуру. Ваш пример действительно помогает много. Спасибо, Браун. – idxearo

3

Я считаю, что вы хотите определить новый простой -страничный мастер для вашей титульной страницы, который вам действительно нужно дать определение региона, если вы не беспокоитесь о границах и так далее, а затем вы хотите посмотреть, какая у вас последовательность страниц. В fo последовательность страниц - это то, на что это похоже, это порядок, в который вы вставляете разные страницы. Если вы посмотрите на this example, вы увидите, как определяются последовательности страниц и как вы можете программным образом управлять, какие страницы вы визуализируете, и чтобы сделать это. Если вам нужен более сложный или сложный пример, вы также можете посмотреть this.

Подробнее о том, что ваш шаблон в настоящее время может быть полезно, если вы ищете более подробное объяснение того, как применить это к существующему шаблону.

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