Con el fin de que la informacion que se genere en el documento XSL-FO de salida pueda ser dinamica, haremos que los datos se almacenen en un documento XML, transformandose en el documento de salida mediante el uso de una hoja de estilos XSL.
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform
" xmlns:fo="http://www.w3.org/1999/XSL/Format
">
<xsl:output encoding="ISO-8859-1"
indent="yes"/>
<xsl:template match="listado">
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format
">
<fo:layout-master-set>
<fo:simple-page-master margin-right="1cm" margin-left="1cm"
margin-bottom="1cm"
margin-top="1cm" page-width="210mm" page-height="297mm"
master-name="first">
<fo:region-before extent="1cm"/>
<fo:region-body margin-top="1cm" margin-bottom="1cm"/>
<fo:region-after extent="1cm"/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence
master-reference="first">
<fo:flow
flow-name="xsl-region-body">
<fo:block>
<xsl:value-of select="cabecera"
/>
</fo:block>
<fo:list-block space-before="0.5cm"
space-after="0.5cm" font-size="12pt">
<xsl:apply-templates
select="articulos/articulo" />
</fo:list-block>
</fo:flow>
</fo:page-sequence>
</fo:root>
</xsl:template>
<xsl:template match="articulo">
<fo:list-item>
<fo:list-item-label
end-indent="label-end()">
<fo:block
text-align="start">
<xsl:text>•</xsl:text>
</fo:block>
</fo:list-item-label>
<fo:list-item-body
start-indent="body-start()">
<fo:block>
<xsl:value-of select="text()"/>
</fo:block>
</fo:list-item-body>
</fo:list-item>
</xsl:template>
</xsl:stylesheet>
Ejecutar la transformación con un parser XSL
Si vamos a utilizar un procesador en linea de comandos como puede
ser el XSLTPROC, la instrucción a ejecutar seria la siguiente:
xsltproc sample.xsl sample.xml >
sample.fo
Si vamos a utilizar
Apache ANT. El fichero "build.xml" seria el siguiente:
<?xml version="1.0"?>
<project name="procesando-xml" default="fo">
<target name="init" />
<target name="fo" depends="init">
<echo message="Generando sample.fo ..."
/>
<xslt in="sample.xml" out="sample.fo"
style="sample.xsl">
<outputproperty name="method"
value="xml"/>
<outputproperty name="standalone"
value="yes"/>
<outputproperty name="encoding"
value="ISO-8859-1"/>
<outputproperty name="indent"
value="yes"/>
</xslt>
</target>
</project>
La ejecucion de esta definicion nos permite tomar un
fichero "sample.xml" como entrada, aplicarle una hoja de estilos
xsl "sample.xsl" y obtener como salida un fichero "sample.fo" con
el codigo FO correspondiente.
Procesamiento de dicho fichero XSL-FO con Apache FOP
Para obtener finalmente el fichero PDF que queremos como resultado,
podemos ejecutar el siguiente script que viene con la distribucion
de Apache FOP:
/opt/fop-0.20.5rc2/fop.sh sample.fo -pdf
sample.pdf
Hay 54 opiniones. Opina sobre este curso.
| Cursos | Valoración | Alumnos | Vídeo | |
|---|---|---|---|---|
|
Internet. Tu negocio Intenet fue un negocio que en algún momento parecía una idea "descabellada". Ahora el internet es una herramienta de uso indispensable en las e... [03/02/09] |
|
716 | ||
|
Instalación de un Servidor de Correo en Linux Linux es un sistema operativo libre, con lo que no se tiene que pagar por ningún tipo de licencia. También se puede conseguir el código fuente y poderlo modificar libreme... [16/06/04] |
|
13.755 | ||
|
Informática. Desarrollo científico del ordenador Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo científico que hay detrás de una computadora u ordenado... [10/07/09] |
|
4.408 | ||
Publicar en
del.icio.us
digg
meneame