XSL-FO Blocks (Blöcke)

Der Ausgabe von XSL-FO befindet sich im Bereich der Blöcke.

XSL-FO Seiten, Fluss und Blöcke

Der Inhalt "Block" fließt in die "Seite" und wird dann auf das Medium ausgegeben.

Der Ausgabe von XSL-FO wird in der Regel in den <fo:block>-Elementen eingebettet, die in den <fo:flow>-Elementen eingebettet sind, die wiederum in den <fo:page-sequence>-Elementen eingebettet sind:

<fo:page-sequence>
  <fo:flow flow-name="xsl-region-body">
    <fo:block>
      <!-- Ausgabe hier -->
    </fo:block>
  </fo:flow>
</fo:page-sequence>

Eigenschaften des Blockbereichs

Ein Block ist eine Ausgabesequenz in einem rechteckigen Rahmen:

<fo:block border-width="1mm">
Der umgebende Ausgabeblock hat einen 1-mm-Rahmen.
</fo:block>

Da der Blockbereich ein rechteckiger Rahmen ist, können viele gemeinsame Bereichseigenschaften geteilt werden:

  • Vorheriger Raum und Nachfolgender Raum
  • margin
  • border
  • padding
  • Vorheriger Raum

Abbildung:

Vorheriger Raum und Nachfolgender Raum ist der leere Bereich, der zwischen Blöcken eine Trennungswirkung hat.

margin ist der leere Bereich außen am Block.

border ist der rechteckige Rand am äußeren Rand des Bereichs. Alle vier Seiten können unterschiedliche Breiten haben. Er kann auch in verschiedene Farben und Hintergrundbilder gefüllt werden.

padding ist der Bereich zwischen dem Inhaltsbereich und dem Rahmen.

InhaltDer Bereich kann tatsächliches Inhalt enthalten, wie Text, Bilder, Diagramme usw.

Blockabstand

  • margin
  • margin-top
  • margin-bottom
  • margin-left
  • margin-right

Blockrahmen

Eigenschaft des Rahmengestyles:

  • border-style
  • border-before-style
  • border-after-style
  • border-start-style
  • border-end-style
  • border-top-style ((entspricht border-before)
  • border-bottom-style (entspricht border-after)
  • border-left-style (entspricht border-start)
  • border-right-style (entspricht border-end)

Eigenschaft der Rahmenfarbe:

  • border-color
  • border-before-color
  • border-after-color
  • border-start-color
  • border-end-color
  • border-top-color (entspricht border-before)
  • border-bottom-color (entspricht border-after)
  • border-left-color (entspricht border-start)
  • border-right-color (entspricht border-end)

Randbreite-Attribute:

  • border-width
  • border-before-width
  • border-after-width
  • border-start-width
  • border-end-width
  • border-top-width (entspricht border-before)
  • border-bottom-width (entspricht border-after)
  • border-left-width (entspricht border-start)
  • border-right-width (entspricht border-end)

Block-Füllung

  • padding
  • padding-before
  • padding-after
  • padding-start
  • padding-end
  • padding-top (entspricht padding-before)
  • padding-bottom (entspricht padding-after)
  • padding-left (entspricht padding-start)
  • padding-right (entspricht padding-end)

Blockhintergrund

  • background-color
  • background-image
  • background-repeat
  • background-attachment (scroll oder fixed)

Block-Stil-Attribute:

Ein Block ist eine unabhängig stilisierbare Ausgabesequenz:

<fo:block
  font-size="12pt"
  font-family="sans-serif">
Dieser Block der Ausgabe wird in einer 12pt Serifenlosen Schrift geschrieben.
</fo:block>

字体属性:

  • font-family
  • font-weight
  • font-style
  • font-size
  • font-variant

文本属性:

  • text-align
  • text-align-last
  • text-indent
  • start-indent
  • end-indent
  • wrap-option (定义自动换行,word wrap)
  • break-before (定义分页符,page breaks)
  • break-after (definiert Seitenumbrüche)
  • reference-orientation (definiert den Textwinkel innerhalb von 90")

Beispiel

<fo:block
    font-size="14pt" font-family="verdana" color="red"
    space-before="5mm" space-after="5mm">
W3School
</fo:block>
<fo:block
    text-indent="5mm"
    font-family="verdana" font-size="12pt"
    space-before="5mm" space-after="5mm">
Bei CodeW3C.com finden Sie alle Web-Entwicklungstutorials, die Sie
bedarf, von grundlegendem HTML und XHTML bis hin zu fortgeschrittenem XML, XSL, Multimedia
und WAP.
</fo:block>

Ergebnis:

Sehen Sie sich das obige Beispiel an, wenn Sie einen Dokument mit vielen Überschriften und Absätzen erstellen möchten, dann wird sehr viel Code erforderlich sein.

Normalerweise kombinieren XSL-FO-Dokumente nicht wie wir es gerade getan haben, Formatierungsinformationen und Inhalt.

Mit etwas Hilfe von XSLT können wir Formatierungsinformationen in das Template einfügen und dann saubereres Inhalt schreiben.

Sie werden in den folgenden Kapiteln dieses Tutorials lernen, wie Sie XSLT-Template verwenden, um XSL-FO zu kombinieren.