XSL-FO e XSLT

XSL-FO e XSLT podem se ajudar mutuamente.

Lembras deste exemplo?

<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">
No CodeW3C.com você encontrará todos os tutoriais de construção da Web que você
precisa, desde HTML e XHTML básicos até XML, XSL, Multimídia avançada
e WAP.
</fo:block>

Resultado:

Este exemplo vem da seção sobre a seção de área de bloco XSL-FO.

Ajuda vinda do XSLT

Remover informações XSL-FO do documento:

<header>
W3School
</header>
<paragraph>
No CodeW3C.com você encontrará todos os tutoriais de construção da Web que você
precisa, desde HTML e XHTML básicos até XML, XSL, Multimídia avançada
e WAP.
</paragraph>

Adicionar transformação XSLT:

<xsl:template match="header">
<fo:block
    font-size="14pt" font-family="verdana" color="red"
    space-before="5mm" space-after="5mm">
    <xsl:apply-templates/>
</fo:block>
</xsl:template>
<xsl:template match="paragraph">
<fo:block
    text-indent="5mm"
    font-family="verdana" font-size="12pt"
    space-before="5mm" space-after="5mm">
    <xsl:apply-templates/>
</fo:block>
</xsl:template>

O resultado gerado é o mesmo: