Este sitio usa cookies y tecnologías similares. Si no cambia la configuración de su navegador, usted acepta su uso. Saber más

Acepto

Información sobre cookies


Utilizo cookies propias para asegurar el correcto funcionamiento de la web y cookies de terceros para mejorar los servicios mediante el análisis de hábitos de navegación. Si continúa navegando, considero que acepta su uso. Para cambiar la configuración u obtener más información, siga leyendo este apartado.

Además, esta web utiliza Google Analytics y Google Adsense, un servicio analítico web y un servicio de anuncios publicitarios prestados por Google, Inc.

Qué son las cookies y para qué se utilizan

Una cookie es un fichero que contiene una pequeña información que es enviada por un sitio web y almacenada en el navegador del usuario. De esta manera, el sitio web puede recoger ciertos datos e informaciones sobre las acciones del usuario para así poder optimizar la navegación y ofrecerle servicios que complementen la experiencia de navegación.

Este sitio utiliza cookies cuando un usuario navega por el. Dichas cookies se asocian a un usuario anónimo y a su navegador. Las cookies permiten así a la web, reconocer a los usuarios que accedan a ella, con el único fin de asegurar el correcto funcionamiento de la misma y facilitar a éstos su navegación. En cualquier caso, el usuario puede configurar su navegador para que le avise de la recepción de cookies e impedir así su instalación. Siga leyendo para saber como.

Entre la información que almacenan estas cookies se encuentran: dato de aceptación de cookies, datos de sesión o datos referentes a la navegación intrínseca en el sitio web (páginas visitadas, opciones seleccionadas…etc)

Las cookies utlizan la información que guardan, para personalizar la navegación del usuario, por ejemplo, para poder recordar su login y password automáticamente, obteniendo de esta manera una navegación más rápida y fluida.

Tipos de cookies utilizadas

Podemos distinguir entre dos tipos de cookies en función de su permanencia: cookies de sesión y permanentes. Las cookies de sesión caducan una vez se cierra el navegador, sin embargo, las cookies permanentes se almacenan durante el tiempo definido por el sitio web, o bien hasta que se borren manualmente en el navegador.

En función del objetivo, las cookies que utilizo son:

  • Cookies técnicas, que registran un identificador de sesión con el que el usuario está interactuando con la aplicación, si se elimina o no se permite, la aplicación no permitirá el acceso a un usuario administrador.
  • Cookies de personalización, que guardan preferencias del usuario para que la navegación por el sitio web sea más fluida y adaptada a sus preferencias.
  • Cookies de análisis, que sirven para analizar la navegación, páginas visitadas, duración de la visita, clicks...etc, para cuestiones estadísticas que permitan futuras mejoras en la aplicación.
  • Cookies publicitarias o de terceros: Son las encargadas de recopilar información sobre preferencias y elecciones personales de los usuarios en sitios web. Se dirigen a redes de publicidad que las utilizan para mostrar posteriomente anuncios personalizados en otros sitios web. En esta web se utilizan este tipo de cookies solo en determinadas páginas: Tutoriales, Actualidad y Sobre mí.
Qué ocurre si acepta las cookies

Si tiene las cookies activadas en su navegador, utilizaré esa información para asegurar el correcto funcionamiento de la navegación a través del sitio. Por ejemplo, si es usuario registrado, el sistema recordará por si solo su login y password, para evitar teclearlo cada vez que entre en el.

Que ocurre si desinstala o borra las cookies

Algunas funcionalidades de los servicios quedarán deshabilitadas como, por ejemplo, permanecer identificado, con lo que no funcionaría en acceso a los usuarios, o no mostrar el aviso de aceptación de cookies.

Como desinstalar las cookies o rechazarlas en su navegador

Todos los navegadores actuales permiten cambiar la configuración de Cookies. Estos ajustes normalmente se encuentran en las ‘Opciones’ o ‘Preferencias’ del menú de su navegador. Lo que sigue a continuación es una pequeña ayuda sobre como actuar en cada navegador (únicamente se incluyen navegadores mayormente reconocidos)

  • Firefox: Herramientas -> Opciones -> Privacidad -> Historial -> Configuración Personalizada. Para más información, consultar el soporte de Mozilla o la Ayuda del navegador.
  • Chrome: Configuración -> Mostrar opciones avanzadas -> Privacidad -> Configuración de contenido. Para más información, consultar el soporte de Google o la Ayuda del navegador.
  • Internet Explorer: Herramientas -> Opciones de Internet -> Privacidad -> Configuración. Para más información, consultar el soporte de Microsoft o la Ayuda del navegador.
  • Safari: Preferencias -> Seguridad. Para más información, consultar el soporte de Apple o la Ayuda del navegador.

XSL-FO

¿Qué es?

Un documento XSL-FO es un documento XML en el que se especifica cómo se van a formatear unos datos para presentarlos en pantalla, papel u otros medios. Por ejemplo obtener un documento PDF, documento RTF, PostScript, etc

El significado de las siglas XSL-FO es eXtensible Stylesheet Language Formatting Objects. Hay que destacar que en el documento XSL-FO figuran tanto los datos como el formato que se les va a aplicar.

La unidad básica de trabajo en un documento XSL-FO es el "Formating Object", unidad básica para presentar (formatear) la información. Estos objetos de formato se refieren a páginas, párrafos, tablas, etc.

[Fuente: wikipedia]

Ejemplo de documento XSL-FO:

<?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="hola"
                          page-height="29.7cm"
                          page-width="21cm"
                          margin-top="5mm"
                          margin-bottom="10mm"
                          margin-left="20mm"
                          margin-right="20mm">
           <fo:region-body margin-top="10mm" margin-bottom="10mm" />
       </fo:simple-page-master>
   </fo:layout-master-set>

   <fo:page-sequence master-reference="hola">
       <fo:flow>
           <fo:block>Hola, mundo</fo:block>
       </fo:flow>
   </fo:page-sequence>
</fo:root>

¿Cómo obtener un documento XSL-FO?

Pueden seguirse dos vías:

  • Generarlo directamente a partir de los datos. El documento XSL-FO contiene las especificaciones de formato y los propios datos.

  • Transformar un documento XML que contenga los datos a presentar con una hoja de estilos XSLT. De esta forma los datos (XML) se independizan del formato que proporcionará la hoja de transformación XSLT.

Cuando se tiene el documento XSL-FO, puede ser procesado por un programa llamado "procesador de XSL-FO" para obtener el documento final en distintos formatos. El formato final más utilizado es el PDF.

Transformaciones XSL y procesamiento XSLT-FO

XSL-FO

[fuente: wikipedia]

Objetos de Formateo

Todas las etiquetas específicas del lenguaje XSL- FO tienen que ver con elementos de maquetado:

páginas, párrafos, listas, tablas, etc.

 

XSL-FO realiza una división en áreas rectangulares para mostrar la salida (texto, imágenes etc)

 

Tipos de áreas

 

Páginas

Todo el contenido se organiza en una o más páginas. (se define el tamaño, los márgenes y las regiones).

Regiones

Las páginas contienen regiones

Bloques

Las regiones se  componen de bloques.

Cada bloque es un pequeño elementos como: párrafos, tablas, listas, etc.

Líneas

son áreas de textos que se incluyen dentro de los bloques

 

Ejemplo

<?xml version="1.0" encoding="ISO-8859-1"?>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
 <fo:simple-page-master master-name="A4">
 <fo:region-body />
 </fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="A4">
 <fo:flow flow-name="xsl-region-body">
 <fo:block>Hola Mundo</fo:block>
 </fo:flow>
</fo:page-sequence>
</fo:root>

 

La etiqueta <fo:flow> contiene todos los elementos que van a ser impresos en la página.

El atributo flow-name define en qué región de la página se va a escribir el contenido.

ELEMENTOS DEL LENGUAJE XSL-FO

Consultar en los siguientes enlaces:

http://www.tic2.org/WebTecnica/Programacion/XSLFO/XSLFODocEstructura/XSLFODocEstructura.htm

http://lml.ls.fi.upm.es/~mcollado/xml/0809/xml.html#toc53

Procesadores XSL-FO

XSL-FO necesita software específico que formatee y genere la salida, estos programas se denominan procesadores XSL-FO.

Los procesadores XSL-FO libres más conocidos son FOP y PassiveTeX.

XSL-FO es una recomendación del World Wide Web Consortium. El nombre oficial de la recomendación es Extensible Stylesheet Language (XSL) y no XSL-FO.

ACTIVIDAD 1

1. Descargar e instalar el procesador FOP (distribución binaria):

http://xmlgraphics.apache.org/fop/

http://ftp.cixug.es/apache/xmlgraphics/fop/binaries/

 

2. Instalación

Descomprimir el fichero y veremos que nos crea una gran cantidad de directorios con todo lo necesario para empezar a trabajar y ver su funcionamiento: ejemplos, documentación, ficheros bat, etc.

3. Funcionamiento

Para probar que todo nos funciona correctamente podemos realizar los siguientes pasos:

  • Dentro de la carpeta raíz del FOP nos situamos en el subdirectorio

examples\fo\basic

 

  • Copiamos cualquier documento, por ejemplo table.fp  en el directorio raíz de la aplicación y ejecutamos el fichero Fop.bat de la siguiente manera:

Fop table.fo prueba.pdf

Lo cual nos genera el fichero  PDF:

prueba.pdf

4. Abrir el documento table.fo en Notepad++ y analizar su contenido contractando con el documento de salida prueba.pdf.

Convertir XML en PDF utilizando XSL-FO y FOP

Pretendemos crear un archivo pdf que presente un saludo a los alumnos de 1º de ASIR

  1. Procedimiento estático

<?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="A4-portrait"
              page-height="29.7cm" page-width="21.0cm" margin="2cm">
          <fo:region-body />
		</fo:simple-page-master>
    </fo:layout-master-set>
    <fo:page-sequence master-reference="A4-portrait">
        <fo:flow flow-name="xsl-region-body">
          <fo:block>  Hola Antonio</fo:block>
          <fo:block>  Hola Juan</fo:block>
        </fo:flow>
    </fo:page-sequence>
</fo:root>

Esta sería una forma estática de crear el pdf. Para aprovechar la potencia de FOP lo que haremos es combinar un  archivo xml con losl nombre de todos los alumnos (lo llamaremos alumnos.xml) y el archivo anterior  de transformación saludo.fo   utilizando el lenguaje XSLT ya estudiado.

 

El archivo XML puedes ser alumnos.xml

<?xml version="1.0"?>
<alumnos>
<alumno>
<nombre>Antonio</nombre>
</alumno>
<alumno>
<nombre>Juan</nombre>
</alumno>
<alumno>
<nombre>María</nombre>
</alumno>
<alumno>
<nombre>Valle</nombre>
</alumno>

</alumnos>

Crearemos un nuevo archivo saludo2.xsl que consistirá simplememte en añadir código XSL al documento anterior saludo.fo

saludo2.xsl

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

<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 method="xml" indent="yes"/>
 
 <xsl:template match="/">
    <fo:root>
      <fo:layout-master-set>
        <fo:simple-page-master master-name="A4-portrait"
              page-height="29.7cm" page-width="21.0cm" margin="2cm">
          <fo:region-body />
		</fo:simple-page-master>
    </fo:layout-master-set>
    <fo:page-sequence master-reference="A4-portrait">
        <fo:flow flow-name="xsl-region-body">
          <fo:block>  

		  Hola  <xsl:apply-templates />
		  
	 </fo:block>
        
        </fo:flow>
    </fo:page-sequence>
    </fo:root>
 </xsl:template>

<xsl:template match="nombre">
	<fo:block font-size="12pt" 
            font-family="sans-serif" 
            line-height="15pt"
            space-after.optimum="3pt"
            text-align="justify">
      <xsl:value-of select="."/> 
  </fo:block>
</xsl:template>
</xsl:stylesheet>

Finalmente ejecutamos FOP

Fop -xml alumnos.xml -xsl saludo2.xsl -pdf saudo2pdf.pdf

ACTIVIDAD 2

  1. Partiendo de los documentos anteriores alumnos.xml y saludo2.xsl obtener el correspondiente saludo2pdf.pdf

  2. Realizar las modificiaciones necesarias en los documentos anteriores para que aparezca en un nuevo documento pdf  llamado “saludo3.pdf”:

  • Una cabecera “LISTA DE ALUMNOS DE 1º DE ASIR”
  • El listado de alumnos en una tabla

 

Herramientas comerciales