XSL-FO

Page 1

XSLT-FO Objetos de formateo XSLT


Objetos de formateo Todas las etiquetas específicas de este lenguaje tienen que ver con elementos de maquetado: ●

páginas

párrafos

bloques

tablas…

Unidad básica de diseño: Objeto de formateo (fo) XSL-FO usa áreas rectangulares para mostrar la salida. Cualquier salida (texto, imágenes,..) se mostrará en estas áreas.


Tipos de áreas: ●

Páginas ○

La salida de una transformación se organizará en páginas (múltiples para documentos impresos, una de gran tamaño para navegadores)

○ ●

Una página se compone de regiones

Regiones ○

Toda página XSL-FO contiene unas regiones determinadas: ■

región-body (cuerpo de la página)

region-before, region-after (cabecera y pie de la página )

region-start, region-end (lateral izquierdo y derecho)


Tipos de áreas: ●

Áreas de bloque ○

○ ●

Definen elementos de bloque de pequeño tamaño (normalmente asociadas a líneas) ■

párrafos,

listas

tablas

Pueden contener otras áreas de bloque o áreas de línea

Áreas de línea ○

Definen líneas de texto dentro de áreas de bloque.

Contienen áreas secuenciales


Tipos de áreas: ●

Áreas secuenciales ○

Definen texto en el interior de líneas. ■

caracteres simples

viñetas

gráficos,….


Estructura de una página XSL-FO ●

El elemento raíz es <fo:root>

Descendientes directos del raíz son: ○

<fo:layout-master-set> Conjunto de patrones de las páginas de un documento <fo:simple-page-master> Contenido por <fo:layout-master-set>, define el patrón para una página (regiones, márgenes, cabecera, pie,...)


<?xml version="1.0" encoding="UTF-8"?> <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> <fo:layout-master-set> <fo:simple-page-master master-name="paginaEjemplo"> <fo:region-body margin="1in"/> </fo:simple-page-master> </fo:layout-master-set>

<fo:page-sequence master-reference="paginaEjemplo"> <fo:flow flow-name="xsl-region-body"> <fo:block>¡Hola Mundo!</fo:block> </fo:flow> </fo:page-sequence> </fo:root>


XSL-FO y XSLT ●

Queremos generar una salida en formato PDF a partir de los datos de un documento XML.

Usamos una combinación de etiquetas de XSL-FO con las de XSLT

Construimos una hoja de transformaciones XSLT con objetos de formateo XSL-FO


C贸digo combinado XSL-FO y XSLT

<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0"

Documento XML

xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" > <xsl:output method="xml" encoding="UTF-8" indent="yes"/> <xsl:template match="/"> <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> <fo:layout-master-set> <fo:simple-page-master master-name="paginaEjemplo"> <fo:region-body margin="1in"/> </fo:simple-page-master> </fo:layout-master-set> <fo:page-sequence master-reference="paginaEjemplo"> <fo:flow flow-name="xsl-region-body"> <fo:block><xsl:value-of </fo:flow> </fo:page-sequence> </fo:root> </xsl:template> </xsl:stylesheet>

select="mensaje"/></fo:block>

<?xml version="1.0" encoding="UTF-8"?> <mensaje>Hola mundo</mensaje>


Objetos de formateo <fo:root> Elemento raĂ­z de un documento XSL-FO Atributo obligatorio xmlns:fo="http://www.w3.org/1999/XSL/Format" Espacio de nombres de los objetos de formateo fo


<fo:layout-master-set> Objeto que contiene todos los modelos de pรกgina (<fo:simple-page-master>) usados en el documento


<fo:simple-page-master> ●

Define el formato o distribución (layout) de una página o conjunto de páginas

Hay uno de estos objetos por cada formato de página diferente que haya en el documento. ○

Documentos sencillos: un único modelo de página

Documentos complejos: varios modelos (portada, índice, páginas pares, páginas impares,...)

Puede contener cinco regiones o secciones: ○

cuerpo (region-body). Imprescindible

cabecera y pie (region-before y region-after)

margen izquierdo y derecho (region-start y region-end)


Objetos de formateo <fo:simple-page-master> Atributo master-name Nombre del modelo Dispone de otros atributos similares a los existentes en CSS: margin, page-height, page-width, space-before, space-after, start-indent


Objetos de formateo para el contenido de las páginas <fo:page-sequence> ●

Se define un objeto de este tipo por cada página diferente que se quiera generar en el documento de salida.

Los descendientes proporcionan el contenido de la página de salida.

Cada objeto de este tipo está asociado a un objeto <fo:page-sequence-master> o <fo:simplepage-master>

Contenido: <fo:title>, <fo:static-content>, <fo:flow>

Atributos ○

master-reference: nombre del objeto <fo:page-sequence-master> o <fo:simple-pagemaster> al que se encuentra asociado.


<fo:page-sequence-master> â—?

Indica en quĂŠ orden se emplean los objetos <fo:simple-page-master> Atributo master-name nombre el modelo


<fo:single-page-master-reference> Hace alusiĂłn a un <fo:simple-page-master> que se insertarĂĄ una Ăşnica vez Atributos master-reference nombre del <fo:simple-page-master>


<fo:repeatable-page-master-alternatives> Indica la repetición de un conjunto de objetos <fo:simple-page-master> Contiene uno o más elementos <fo:conditional-page-master-reference> Atributos maximum-repeats (Opcional) Indica el número de repeticiones máximo que se pueden dar.


<fo:repeatable-page-master-reference> Hace alusi贸n a un <fo:simple-page-master> que se insertar谩 repetidas veces Atributos master-reference nombre del <fo:simple-page-master>


<fo:conditional-page-master-reference> Modelo de página condicional y condiciones que se tienen que dar para que se aplique Cuando varios modelos cumplen la misma condición (ser primera página e impar) se aplica el primero en aparecer. Atributos master-reference: nombre de la <fo:simple-page-master> page-position: ordinal de la página a la que se aplicará el modelo (first,...) odd-or-even: indica si el modelo se aplica a páginas pares (even) o impares (odd)


Objetos de formateo para el contenido de las pĂĄginas <fo:title> Objeto que especifica el tĂ­tulo para una <fo:page-sequence>


Objetos de formateo para el contenido de las páginas <fo:static-content> Contiene elementos estáticos, como cabeceras o pies de página, que se repetirán en muchas páginas. Estos contenidos estáticos aparecerán en una página antes que el objeto <fo:flow> Atributos flow-name: indica dónde se ubicará el contenido <fo:static-content> (xsl-region-body, xsl-region-before, xsl-region-after, xsl-region-start, xsl-region-end, xsl-before-floatseparator y xsl-footnote-separator)


Objetos de formateo para el contenido de las pรกginas <fo:flow> Contiene los elementos que se imprimirรกn en una pรกgina. Atributos flow-name: indica dรณnde se ubicarรกn los elementos <fo:static-content> (xsl-region-body, xsl-region-before,

xsl-region-after,

separator y xsl-footnote-separator)

xsl-region-start,

xsl-region-end,

xsl-before-float-


Objetos de formateo para el contenido de las páginas <fo:block> Contenedor a nivel de bloque (similar a un <div> en HTML) Para dar formato a párrafos, títulos,... Atributos Similares a las de estilos CSS: background-color, font-family, font-weight, margin, padding,...


Objetos de formateo para el contenido de las pĂĄginas <fo:inline> Contenedor a nivel de objetos distribuidos secuencialmente, sin salto de lĂ­nea.


Objetos de formateo para generar listas <fo:list-block> Objeto usado para definir una lista. Contenido: <fo:list-item>

<fo:list-item> Objeto usado para definir cada elementoo de una lista. Contenido: <fo:list-item-label> <fo:list-item-body>


Objetos de formateo para generar listas <fo:list-item-label> Objeto que contiene la etiqueta usada como marcador de lista (un numero, guion,...) Esta etiqueta se encuadrara dentro de un objeto <fo:block> Contenido: <fo:block> <fo:block-container> <fo:table-and-caption> <fo-table> <fo:list-block> <fo:list-item>


Objetos de formateo para generar listas <fo:list-item-body> Objeto que contiene el cuerpo o contenido de cada elemento de lista. Normalmente uno o mas objetos <fo:block>)

Contenido: <fo:block> <fo:block-container> <fo:table-and-caption> <fo-table> <fo:list-block> <fo:list-item>


Objetos de formateo para generar tablas <fo:table-and-caption> ยกNo usar con Oxygen! Objeto que contiene todos los demas relativos a la construccion de tablas

<fo:table-caption> ยกNo usar con Oxygen! Contiene el titulo de la tabla y es descendiente de <fo:table-and-caption>


Objetos de formateo para generar tablas <fo:table> Define la tabla Contenido: <fo:table-column> <fo:table-header> <fo:table-body> <fo-table-footer>

<fo:table-column> Permite indicar el formato de las columnas de la tabla. Atributo column-width: ancho de la columna


Objetos de formateo para generar tablas <fo:table-header> Define la cabecera de la tabla Contenido: <fo:table-row> <fo:table-cell>

<fo:table-footer> Define el pie de la tabla. Contenido: <fo:table-row> <fo:table-cell>


Objetos de formateo para generar tablas <fo:table-body> Objeto contenedor de las filas <fo:table-row> y celdas <fo:table-cell> de la tabla (similar a HTML)

<fo:table-row> Define una fila de una tabla. Contenido: <fo:table-cell>


Objetos de formateo para generar tablas <fo:table-cell> Representa una celda de una tabla Contenido: <fo:block> <fo:block-container> <fo:table-and-caption> <fo:table> <fo:list-block>


Objetos de formateo para generar enlaces e imagenes <fo:basic-link> Corresponde a un enlace, puede ser a una ubicacion interna al documento (etiquetada con id) o externa (URL) Atributos: internal-destination: atributo id del objeto del documentos a donde conduce el enlace external-destination: URI del enlace


Objetos de formateo para generar enlaces e imagenes <fo:external-graphic> Permite insertar una imagen. Atributos: src, width, height

<fo:leader> Permite crear una linea horizontal Atributos: leader-length: longitud de la linea leader-pattern: aspecto de la linea


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.