martes, 16 de diciembre de 2008

Crear formularios PDF (FDF) con Scribus

Fuente: andalinux.
Atención: En el enlace anterior podrás encontrar el post original. Esto es sólo un copiar y pegar.

Diseño del formulario

Este paso no difiere de la creación de cualquier documento con Scribus. El diseño y la información que aparezca en cada formulario dependerá de las necesidades y la creatividad de cada uno.
Si acaso recomendar el uso de capas para facilitar el trabajo con el mismo al evitarse de este modo que unos objetos (los textos e imágenes estáticos) interfieran con las cajas de texto y listas desplegables que añadiremos en el próximo paso.

Para mostrar el diálogo de capas (si es que no lo tienes visible) debes optar por
  • seleccionarlo en el menú Ventanas > Capas
  • pulsar la tecla F6 (atajo de teclado de la entrada de menú anterior)
En el ejemplo he optado por utilizar tres capas:
  1. Capa Marcos para el borde exterior de esquinas redondeadas
  2. Capa Textos para las etiquetas que indican la información de cada apartado del documento
Capa Controles para las cajas de texto, listas deplegables y similares que nos van a permitir introducir información en el documento.
Una vez que generemos el documento PDF el resultado será algo tan “demoledor” como lo que puede verse en la siguiente imagen
NOTA: Obsérvese que la idea es imprimir el documento relleno y colocarlo en los casilleros de cada uno de los profesores que dan clase a un alumno/a; es por ello que no tiene sentido el relleno de color de los campos del documento. Se han resaltado única y exclusivamente para facilitaros su identificación. Cuando se imprime el documento (en una láser sin color) no aparecen los recuadros.

Tipos de campos en un PDF

Con Scribus podemos añadir al documento los siguientes tipos de campos
NOTA: De los distintos tipos de campos que podemos utilizar quizás los únicos que requieran cierta explicación son los dos últimos (el resto son los típicos de cualquier formulario web). La diferencia básica es que el cuadro combinado permite seleccionar en una lista desplegable una única entrada mientras que la lista ofrece varias opciones para que seleccionemos las que nos interesen sin tener que desplegarla para ver su contenido.
Aunque Scribus va asignando nombres automáticamente conforme vamos colocando los campos en el formulario es conveniente darles un nombre que tenga sentido para nosotros y que nos permita identificarlos (y referenciarlos) en el próximo paso.
Para ello con hacer doble-click sobre el control automáticamente aparecerá el formulario Propiedades de campo donde poder asignar un nombre que tenga sentido para nosotros

“Animar” el formulario

Una vez que tenemos colocados los distintos controles (campos del formulario) en nuestro documento el siguiente paso es dotarlos de funcionalidad.
Como éste es un artículo de introducción no haremos gran cosa (si queréis que ampliemos el “temario” no tenéis más que pedirlo a través de los comentario como suele ser habitual) y nos conformaremos con volcar la información que introduzcamos en otros campos del documento (se pueden realizar validaciones, cálculos a partir de los datos, …)

Introducir código en un campo del documento

Deberemos hacer doble-click sobre el campo para abrir el formulario Propiedades del objeto y en la pestaña Acción, tras elegir el tipo de evento (en el ejemplo “Se pierde el foco“) pulsamos el botón Editar
En el formulario que nos aparecerá incluiremos el código javaScript necesario para que cambie el comportamiento y/o contenido del formulario cuando pulsemos la tecla tabulador y se abandone el campo txtFecha1 (que es el elegido en el ejemplo)

Código javaScript de ejemplo

Como hemos dicho sólo vamos a volcar el dato introducido por el usuario (una fecha) a otros campos del formulario (los campos txtFecha2, txtFecha3 y txtFecha4) correspondientes a las otras tres fichas que tenemos dentro del A4 de nuestro documento.
El código queda como sigue
this.getField(”txtFecha2″).value=this.getField(”txtFecha1″).value
this.getField(”txtFecha3″).value=this.getField(”txtFecha1″).value
this.getField(”txtFecha4″).value=this.getField(”txtFecha1″).value
donde:
  • el objeto this hace referencia al documento en el que se encuentran los controles o campos del formulario
  • el método getField(”NOMBRE_CAMPO”) permite obtener una referencia al control que queremos modificar.
  • la propiedad value permite obtener el contenido (o valor) de un campo
luego si con
this.getField(”txtFecha1″).value
obtenemos la información que hemos introducido en el campo txtFecha1, con
this.getField(”txtFecha2″).value=this.getField(”txtFecha1″).value
lo que hacemos es asignar al campo txtFecha2 el contenido del campo txtFecha1
NOTA: instrucciones como la anterior deberemos incluirlas en los distintos campos de texto para hacer copias en el resto de campos. Por ejemplo, en el campo txtFecha2 deberemos asignar valor a los campos fecha 1, 3 y 4 con un código similar al que hemos mostrado al principio.

Conclusión

Aunque se trata de una “simple” introducción al mundo de los formularios pdf desde la perspectiva del Software Libre considero que es un buen punto de partida para
  1. Mostrar la existencia y potencia de esta tecnología
  2. Despertar el gusanillo de aquellos que habéis llegado hasta aquí leyendo y daros las bases para que comencéis a experimentar e investigar por vuestra cuenta
=== === === ===
Actualización:
Itxaspe nos aporta este magnífico manual. No dejes de visitarlo.

Manual de Scribus: software libre para publicación y maquetación

2 comentarios:

Itxaspe dijo...

Buenos días

Os escribo por si puede resultaros de interés este otro manual sobre Scribus que acabamos de hacer ;) Recién terminado y con ejercicios.

Scribus :software libre similar los programas comerciales Adobe PageMaker, QuarkXPress y Adobe InDesign.

http://www.imh.es/dokumentazio-irekia/manuales/scribus-software-libre-para-publicacion-y-maquetacion

Un saludo y muchísimas gracias

Koro Gabiola

antonio dijo...

Magnífico manual Itxaspe. Agrego la dirección en la entrada.