Developer's Diary

1 junio, 2013

Creando PDF en C# (Apache Fop IIII)

Filed under: .net, ASP.Net, Curso C#, Programación, Uncategorized — Etiquetas: , , , , , , , — jnavero @ 11:55 AM

En el día de hoy hablaré de las plantillas XSL. y mas posibilidades que estás presentan. Además daré algunos tips para facilitar las cosas como llamadas a otras plantillas con argumentos, como hacer un salto de línea, cargar una imagen o bueno, con un poquito mas de código podemos cargar fuentes (tipos de letras adicionales) de forma sencilla.

Sin mas comencemos con esta cuarta entrega.

Llamadas a otras plantillas (Sub plantillas)

Para no tener un archivo enorme, podemos separar la plantilla en diferentes archivos y luego ir llamándolas como si de funciones se tratase.

Por ejemplo en la plantilla que vimos en la parte 3 para ir separando cosas. en un archivo meteremos la configuración de la pagina

para ello creamos un archivo llamado PlantillaPagina.xsl donde meteremos el siguiente código:

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

y en archivo de la plantilla: PlantillaAgenda.XSL el código nos quedaría de esta forma:

Se que puede parecer mucho, pero en realidad es mas sencillo de lo que aparenta. con importamos las plantillas del archivo PlantillaPagina.xsl y con hacemos la llamada a la plantilla llamada ConfiguracionPagina.

Podemos pasarle parámetros a las plantillas, en el siguiente ejemplo muestro como se hace. 


En esta porción de código, estoy haciendo una tabla con un estilo subrayado y contiene un parámetro que se define podemos definir todos los parámetros que queramos (supongo que tendrá un limite pero realmente lo desconozco). después para visualizar el valor del parámetro o usarlo en secuencias de control solamente debemos referirnos a el con $Texto como podemos ver en la línea

por otra parte la llamada a esa plantilla la he colocado como “Titulo” antes de for-each y queda de la siguiente forma: 

.Visualizacion de la Agenda.

De esta forma llamamos a la plantilla TituloParrafoSubrayado con el parámetro que deseemos con lo que reutilizaremos código fácil y rápidamente.

Como hacer un salto de página:
podemos hacer un salto de pagina muy fácilmente de la siguiente forma:


..Esto es un salto de pagina..

Imágenes en nuestro PDF:
Al igual que el salto de línea es muy sencillo usar una imagen para ponerla en nuestra plantilla. la forma de hacerlo es la siguiente:

para este ejemplo he creado una imagen en con el paint para darle color al ejemplo.

Configuración de FOP Añadiendo Fuentes TTF
Podemos usar un archivo XML de configuración como el siguiente:



Personalmente, no recomiendo usar el directorio Windowsfonts ya que tarda (al menos a mi) mas de lo normal. por otro lado para poder hacer que esto funcione correctamente, es necesario especificarle que archivo de configuración debe coger y de donde mediante estas tres líneas de código que debemos meterlas justo antes de empezar a usar fop:

Dim cfgbuilder As New DefaultConfigurationBuilder
Dim cfg As Configuration = cfgbuilder.buildFromFile(New File("configfop.xml"))
FopFac.setUserConfig(cfg)

Como se puede ver en la configuración, podemos indicarle el nombre de la fuente y bueno, en realidad podemos hacer muchas mas cosas pero, no quiero liar mucho mas esto 🙂

Ejemplo de uso de una función XPATH
Como hablé en otros post, podemos usar Xpath para hacer muchísimas cosas, quiero mostrar un ejemplo de un substring con xpath para que se vea lo sencillo que puede llegar

a ser con esta línea podemos recortar el “Mote” para que solo se muestren 4 caracteres y de esta forma usamos cualquier otra función.

Otra sentencia de control “Case”
Hemos visto el if en un ejemplo, en este ejemplo muestro el equivalente al select case o case when…

Si se cumple que la variable es = 1

Esto sería el case else

Podemos meterle todos los when como queramos.

Como veis ahora he ido un poco mas rápido, y se que me dejo muchísimas cosas en el tintero, pero, se podría escribir un libro muy extenso de esto y no acabaríamos nunca.
Así que con esto me despido de esta serie de post ya que creo que hay material para hacer unos PDFs muy complejos.

Anuncios

Dejar un comentario »

Aún no hay comentarios.

RSS feed for comments on this post. TrackBack URI

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s