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 | |
|---|---|---|---|---|
|
Word e internet básicos Te presentamos este curso básico de word e internet. Con él podrás conocer paso a paso aquellos aspectos más básicos y necesarios para poder avanzar en el mundo de la inf... [19/09/06] |
|
3.247 | ||
|
PHP y MySQL. Aplicaciones Web: HTML I (segunda parte) Programación de aplicaciones Web con PHP y MySQL. Ahora estudiaremos las páginas Web HTML, la estructura de los documentos HTML y los tipos de documentos... [02/12/08] |
|
1.143 | ||
|
Boletín digital: consejos y estrategias de promoción Un boletín informativo es una publicación distribuida de forma regular, generalmente centrada en un tema principal que es del interés de sus afiliados.¿Quieres qu... [30/07/07] |
|
952 | ||
Publicar en
del.icio.us
digg
meneame