Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porAbraám Subia Modificado hace 9 años
1
Curso: XML, de los datos a la presentación Julio de 2005 CAPTIVA · www.captiva.es eXtensible Stylesheet Language Formatting Objects
2
Introducción XSL Formatting Objects Aplicación desarrollada enteramente en XML. Permite describir de forma precisa la posición del texto en una página Orientado a impresión. Define elementos que representan: páginas, bloques de texto dentro de las páginas, gráficos, reglas horizontales, etc. Normalmente no se escribe XSLFO directamente sino que se escriben hojas de estilo XSLT que transforman un documento nativo XML en XSLFO.
3
Introducción (II) XSL Formatting Objects Finalmente la aplicación de renderizado lee XSLFO y la presenta al usuario. Debido a que la mayoría de los navegadores no soporta renderizar directamente XSLFO, es necesario un procesamiento de transformación adicional: XSLFO a PDF. XSLFO a TEX. …
4
Introducción (III) XML XSL Procesador XSLT Procesador XSLT TEX XSLFO Procesador XSLFO
5
Documento XSLFO Un documento XSL-FO es un documento XML con información de salida, que contiene tanto información de composición de la salida como información de contenido. Un documento XSL-FO se puede almacenar con extensión.fo,.fob o incluso también.xml, para facilitar su acceso a los editores XML.
6
Estructura documento XSLFO Elemento raíz: fo:root Plantillas de páginas: fo:layout-master-set Contiene uno o más elementos con la configuración de las diferentes plantillas de páginas. Incluye información de tamaño de página, posición, márgenes, etc. Contenido de las páginas: fo:page-sequence Uno o más elementos con información de contenido e instrucciones de formato. Cada elemento referencia a una plantilla definida anteriormente en el elemento fo:layout-master-set.
7
Ejemplo documento XSLFO: Estructura documento XSLFO (II) Plantillas de páginas Contenido de páginas
8
Plantillas de páginas XSLFO define únicamente un tipo de plantilla: Elemento fo:simple-page-master Representa una página rectangular estándar con márgenes en los cuatro lados. Tiene un único nombre (atributo: master-name ). Atributos que definen el tamaño de la página y de los márgenes:
9
La plantilla define 5 regiones dentro de una página: region-start, region-end, region- before, region-after y region-body. Su disposición en la página depende del sistema de escritura, que puede ser occidental, hebreo, chino y otras posibles combinaciones. Plantillas de páginas (II)
10
Sistema de escritura occidental: de izquierda a derecha y de arriba a abajo
11
fo:region-body obligatorio, el resto opcionales. Por defecto una página únicamente contiene la región body. En caso de especificar regiones de tipo start, end, before o after es necesario indicar su correspondiente anchura o altura mediante el atributo “extent” y especificar los márgenes de la region body “margin-top”, “margin-left”, etc para que no se solapen. Plantillas de páginas (III)
12
Flujo de contenido Cada elemento fo:page-sequence indica mediante el atributo “ master-reference ” la plantilla de página que se va a utilizar en la composición del documento. Habrá tantos elementos fo:page-sequence como secuencias de páginas con diferentes plantillas de página. Dentro de un elemento fo:page-sequence la información de contenido y de composición fluye a través de elementos fo:flow.
13
Flujo de contenido Cada elemento fo:flow dentro de una secuencia de páginas indica mediante el atributo “ flow-name ” la region dentro de la página donde incluir el contenido. El contenido de las páginas se organiza en forma de bloques mediante elementos fo:block anidados dentro de elementos fo:flow. El SW de formateo va rellenando páginas con la información de contenido de los elementos contenidos dentro del elemento fo:flow. Cuando una página se completa se utiliza una y otra vez la misma plantilla hasta que todo el texto queda impreso.
14
Contiene elementos de formateo a nivel de bloque. fo:block elemento básico. Otros: fo:block-container, fo:list-block (listas), fo:table, fo:table-and-caption (tablas), etc. fo:block puede contener texto o elementos de formateo de objetos: fo:external-graphic, fo:inline, fo:page-number, fo:footnote e incluso nuevos elementos fo:block. Flujo de contenido
15
Bloques XSLFO XSLFO define una serie de áreas rectangulares o cajas (boxes). Áreas de tipo bloque, línea, áreas dentro de línea, etc. Las áreas de tipo bloque o dentro de línea se definen mediante elementos XSLFO, mientras que las de tipo línea son generadas por el formateador según son necesarias. El motor de renderización normalmente decide automáticamente el lugar y tamaño de las diferentes áreas que componen el documento. Sin embargo siempre se pueden definir propiedades de posición tanto relativa como absoluta, de tamaño, de separación, etc. dentro de una página. Por defecto las áreas no se solapan, aunque se puede forzar para que ocurra.
16
Por cada caja o área se distinguen una serie de zonas: Contenido Margen Borde Relleno Contenido Bloques XSLFO (II)
17
A partir de aquí XSLFO se convierte en un lenguaje de descripción y composición de salida al igual que lo puede ser HTML, LATEX, etc. Con gran variedad de elementos (tablas, listas, símbolos, etc.) y atributos (márgenes, estilos, colores, etc.) Bloques XSLFO (III)
18
Existen multitud de propiedades de formateo con la misma sintaxis que en CSS Las propiedades se pueden aplicar a los bloques o cualquier elemento Son heredadas en elementos descendientes Ejemplo de clase CSS: dish { display: block; font-family: Helvetica, Arial, sans-serif; font-size: 20pt; font-weight: bold; text-align: center } Equivalente aplicado a un bloque renderizado desde template XSLT: <fo:block font-family="Helvetica, Arial, sans-serif" font-size="20pt" font-weight="bold" text-align="center"> Propiedades
19
En algunas ocasiones las propiedades de CSS se traducen en elementos FO El ejemplo son las listas. Los elementos necesarios para formar una lista son: • Primer elemento • Segundo elemento Propiedades (II)
20
Un procesador XSLFO es un programa que formatea documentos XSLFO generando una salida. La mayoría de los procesadores XSLFO permiten transformar a formatos PDF y formatos de calidad de impresión así como otros tipos de formatos, incluso HTML. También existen IDEs que permiten diseñar composiciones de salida de manera gráfica generando los elementos XSLFO automáticamente. XSL Formatter, Scriptura, XMLSpy, Stylus Studio, etc. Procesadores XSLFO
21
Partiremos de ejemploFO.xsl y lo modificaremos para que sólo nos saque con formato “ principal ” el primer capítulo y el resto con formato “ apaisada2columnas ” Adecentaremos primero el código definiendo dos variables globales “ fragmentoEncabezado ” y “ fragmentoPie ” que contengan respectivamente los elementos Igualmente crearemos un template para “ parrafo ” extrayendo su contenido fuera Para indicar a qué tipo de página asociamos cada page-sequence dentro del template del capítulo usaremos una variable local “ tipoPaginaCuerpo ” Ejercicio
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.