Thomas J.S.: XSL-FO / A4 portrait and landscape

Beitrag lesen

Hallo,

gibt es eine Möglichkeit in einer A4-Publikation (portrait), eine oder zwei Seiten als landscape auszugeben?
Ich habe jetzt schon ein bißchen recherchiert, aber noch nicht wirklich etwas hilfreiches gefunden.

Ja. Du musst mehrere "simple-page-master" definieren, dabei eben die gewünschte Formate. Dann kannst du diese entweder in einem oder in mehreren "page-sequence-master" zusammenfassen und dann kannst du die Seiten oder Seitenbafolgen mit/in einem oder mehreren "page-sequence master-reference=''" verwenden.

Wo genau die "landscape"-Seite/n kommen sollen muss du dann aus dem XML bestimmen und an dem Punkt eben die Vorlage ("simple-page-master" oder "page-sequence-master" aktivieren.

Hier ein recht koplexes Beispiel für die Verwendung verschiedenen Seitenvorlagen:

Grüße
Thomas
-----------------------------------------------------
<?xml version="1.0" encoding="iso-8859-1"?>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">

fo:layout-master-set
  <fo:simple-page-master
      master-name="dieTitelSeite"
      page-width="21cm"
      page-height="29.7cm">
    <fo:region-body margin="3.5cm" border="5pt solid silver"/>
  </fo:simple-page-master>

<fo:simple-page-master
      master-name="dieErsteSeite"
      page-width="21cm"
      page-height="29.7cm"
      margin="2cm">
    <fo:region-body margin="1cm"/>
  </fo:simple-page-master>

<fo:simple-page-master
      master-name="dasInhaltsVerzeichnis"
      page-width="21cm"
      page-height="29.7cm"
      margin="2cm 1.5cm">
    <fo:region-body margin="1cm" border-left="3pt solid blue"  border-right="3pt solid blue" padding="0pt 10pt 0pt 10pt"/>
  </fo:simple-page-master>

<fo:simple-page-master
      master-name="dieUngeradeSeiten"
      page-width="21cm"
      page-height="29.7cm"
      margin-top="1cm"
      margin-bottom="2cm"
      margin-left="2.5cm"
      margin-right="1.5cm">
    <fo:region-body margin="1cm" border-right="3pt solid blue" padding-right="10pt"/>
    <fo:region-after extent="1cm"/>
  </fo:simple-page-master>

<fo:simple-page-master
      master-name="dieGeradeSeiten"
      page-width="21cm"
      page-height="29.7cm"
      margin-top="1cm"
      margin-bottom="2cm"
      margin-left="1.5cm"
      margin-right="2.5cm">
    <fo:region-body margin="1cm" border-left="3pt solid blue" padding-left="10pt"/>
    <fo:region-after extent="1cm"/>
  </fo:simple-page-master>

<fo:simple-page-master
      master-name="dieLeerSeite"
      page-width="21cm"
      page-height="29.7cm">
    fo:region-body/
  </fo:simple-page-master>

<fo:page-sequence-master master-name="dasTitelblatt">
    <fo:single-page-master-reference master-reference="dieTitelSeite"/>
  </fo:page-sequence-master>

<fo:page-sequence-master master-name="Inhaltsverzeichnis">
  <fo:repeatable-page-master-reference master-reference="dasInhaltsVerzeichnis"/>
  </fo:page-sequence-master>

<fo:page-sequence-master master-name="meineSeitensequenz">
    fo:repeatable-page-master-alternatives
      <fo:conditional-page-master-reference page-position="first" master-reference="dieErsteSeite"/>
      <fo:conditional-page-master-reference blank-or-not-blank="blank" master-reference="dieLeerSeite"/>
      <fo:conditional-page-master-reference odd-or-even="odd" master-reference="dieUngeradeSeiten"/>
      <fo:conditional-page-master-reference odd-or-even="even" master-reference="dieGeradeSeiten"/>
  </fo:repeatable-page-master-alternatives>
  </fo:page-sequence-master>
</fo:layout-master-set>

<fo:page-sequence master-reference="dasTitelblatt" force-page-count="no-force">
  <fo:flow flow-name="xsl-region-body">
    <!-- Inhalt der Titelseite -->
  </fo:flow>
</fo:page-sequence>

<fo:page-sequence master-reference="Inhaltsverzeichnis" force-page-count="no-force" initial-page-number="1">
  <fo:static-content flow-name="xsl-region-after">
    fo:block
      fo:page-number/
    </fo:block>
  </fo:static-content>
  <fo:flow flow-name="xsl-region-body">
    <!-- Inhalt des Inhaltsverzeichnisses -->
  </fo:flow>
</fo:page-sequence>

<fo:page-sequence master-reference="meineSeitensequenz" initial-page-number="1" force-page-count="even">
  <fo:static-content flow-name="xsl-region-after">
    fo:block
      fo:page-number/
    </fo:block>
  </fo:static-content>
  <fo:flow flow-name="xsl-region-body">
    <!-- Inhalt des ersten Kapitels -->
  </fo:flow>
</fo:page-sequence>

<fo:page-sequence master-reference="meineSeitensequenz" initial-page-number="auto-odd" force-page-count="even">
  <fo:static-content flow-name="xsl-region-after">
    fo:block
      fo:page-number/
    </fo:block>
  </fo:static-content>
  <fo:flow flow-name="xsl-region-body">
    <!-- Inhalt des zweiten Kapitels -->
  </fo:flow>
</fo:page-sequence>
</fo:root>