Si queremos preparar un diseño para varias decenas o centenares de usuarios, cambiando para cada uno de ellos su nombre y datos personales, sólo hay dos maneras de hacerlo: A mano o automáticamente, como se hacen con las cartas personalizadas los programas de ofimática, mediante lo que se llama fusiones de correos (mail-merge).
Gracias a algunas opciones poco conocidas, Adobe Illustrator es capaz de automatizar la creación de documentos personalizados como tarjetas de visita, carnets o diplomas.
En este tutorial, explicaremos paso a paso cómo se hace. Las versiones de Illustrator utilizadas son CS4 y CC. No se contemplan todas las opciones, ya que pretende ser un punto de partida más que un repaso exhaustivo.
Creación de la plantilla
Creamos nuestro original de Illustrator teniendo cuidado de dejar como texto aquellas zonas en las que vayan a ir nuestros datos variables. Además, si los textos que van a ir en una zona pueden tener largos muy distintos, es buena idea tener en cuenta la posibilidad de que en unos casos hagan más líneas que en otros, por lo que conviene colocar los textos dentro de una caja y no simplemente en un trazado.
En un sencillo ejemplo, podemos ver cómo sería una tarjeta de visita para el personal de una empresa de exportación de carne de pelícano (85 × 55mm).
Si los textos van a tener un aspecto muy particular, no debemos expandir los efectos aplicados, ya que dejarían de ser textos. Aquí convendrá aplicar los estilos gráficos y las deformaciones —arcos, abombamientos, etc.—, que nos permiten efectos gráficos muy elaborados sin perder el texto como tal. Si el diseño es un poco complejo es muy posible que nos beneficiemos de un uso razonable de capas. En nuestro caso, hemos dejado los textos en una capa encima del resto de la ilustración para más comodidad.
Los textos tienen aplicados estilos gráficos y transparencias —no es que yo sea así de hortera, es para demostrar que se pueden usar esos efectos sin problemas.
Definición de variables
Ahora vamos a convertir algunos de los textos en textos dinámicos, es decir, variables que podrán ir cargándose desde una lista si se hacen las operaciones adecuadas.
Seleccionamos el texto "Nombre de Persona
", abrimos la paleta "Ventana – Variables
" y elegimos la opción "Hacer dinámico el texto
".
Hacemos doble pulsación sobre el nombre "Variable 1
" que habrá aparecido en la paleta y le cambiamos el nombre por "NOMBRE
". Seleccionamos el texto "Cargo de persona
" y repetimos la operación de crear variable y nombrarla; en este caso, la llamamos "CARGO
". Tres veces más, hacemos lo mismo con las variables "DIRECCION
", "TELEFONO
" y "CORREO
".
Advertencia Es fundamental dar a las variables exactamente los los mismos nombres que tengan en el listado posterior de datos, incluyendo acentos, mayúsculas y minúsculas. El consejo es que no comiencen nunca por números o signos que no sean letras y, ya que nos ponemos, si son letras sin acentuar ni símbolos diacríticos, mejor.
Preparación de los datos
Los diversos formatos de datos CSV y XML
Adobe Illustrator sólo entiende los datos dinámicos en una variante de formato XML. El problema es que la mayoría de los datos que trabajamos usualmente estarán en formato CSV, por lo que habrá que hacer una conversión entre ambos formatos.
El formato XML impone una forma muy estructurada y estricta de archivo para describir datos mediante etiquetas internas. Por el contrario, las variantes del formato CSV son meras listas de registros separados por retornos de carro que llevan sus valores separados por comas o tabuladores.
La conversión correcta, rápida y sencilla a la variante concreta de XML que usa Adobe Illustrator es la clave del proceso y posiblemente su punto más complicado. Si el proceso se hace demasiado engorroso, deja de tener sentido el uso de datos dinámicos —¿para qué automatizar algo que se hace más rápido a mano?
En principio, la forma más sencilla de hacer la conversión es usar alguna utilidad ya creada por alguien.
La mala noticia es que XML es un formato de formatos y que el que entiende Adobe Illustrator no sale automáticamente de cualquier programa capaz de producir XML.
La buena noticia es que hay un par de utilidades capaces de producir ese sabor de XML y que son gratuitas. Escritas en JavaScript y se pueden usar directamente en la red, en el sitio web de sus creadores o descargándolas en nuestro ordenador y llamando a la página HTML que las controla a través de nuestro navegador.
Mr. Data Converter al rescate
Mr. Data Converter es creación de Shan Carter. Para usarla simplemente copiamos en el portapapeles los datos de nuestra hoja de cálculo —ni siquiera hay que expórtalos—, basta con seleccionarlos todos y pegarlos en el cuadro superior de la página web mencionada.
Seleccionamos la opción "Output as… XML – Illustrator
" y en el recuadro de abajo aparecerán los datos formateados como XML de Adobe Illustrator.
Copiamos el resultado de la ventana inferior en nuevo archivo de texto y lo llamamos como queramos añadiendo la extensión "xml
". Con eso ya habremos hecho la conversión a XML de Illustrator de todos nuestros datos.
Si nos bajamos la copia comprimida del sitio web de Mr. Data Converter o una copia españolizada que dejo aquí por si acaso —con la ventaja de que los diálogos aparecen parcialmente en castellano—, bastará con abrir la página index.html de esa carpeta en un navegador web y proceder como hemos descrito.
Posibles problemas
XML es un lenguaje de formateo de datos muy estricto y puñetero, por lo que no será raro que al llamar a los datos nos salga un error indicando que "la biblioteca de variables de entrada no es válida
" (incoming variable library invalid). Cuando eso ocurra, será cuestión de rastrear con paciencia dónde está el error con el inri añadido de que el XML correcto de Illustrator falla muchas veces en los validadores de XML, por lo que localizarlo puede ser complejo.
Más de una vez el fallo puede ser simplemente que no estemos guardando el archivo de texto con codificación Unicode correcta y podemos volvernos locos buscando un error no evidente, por cierto ;)
En nuestro ejemplo, preparamos una lista de personal formada por los datos NOMBRE
, CARGO
, TELEFONO
, CORREO
y DIRECCION
, que ponemos en la primera fila de nuestra hoja de cálculo tal cual los hemos escrito —en mayúsculas y sin acentos. El orden de las columnas es indiferente, ya que en el XML se identifican por la etiqueta, no por el orden.
Si hubiera otros datos, no pasa nada siempre que lleven en la fila superior la etiqueta que los va a identificar, como por ejemplo DNI
. Si están bien definidos, Illustrator sabrá que no tiene que hacer nada con ellos y los ignorará. Si nos molesta mucho o causan errores, podemos borrarlos.
Enlace de los datos
Si este apartado funciona ya tendremos hecho casi todo el trabajo. Si hay algún conflicto en nuestros datos XML, aquí es donde lo vamos a ver.
Con el archivo Illustrator abierto, vamos a la paleta "Ventana – Variables
" y elegimos "Cargar biblioteca de variables
". Con eso vamos a vincular la lista de datos dinámicos con el archivo de Illustrator, por lo que es posible que tarde un poco —hay que tener paciencia y dejar respirar al programa.
Si hubiera datos dinámicos ya cargados en el archivo, aunque sean los mismos, Illustrator nos avisará con un mensaje de "El documento actual ya contiene variables. ¿Desea sobrescribir las variables y conjunto de datos actuales?
" Le decimos que "Sí
" y seguimos adelante.
Aparentemente no habrá pasado nada, pero si desplegamos la opción "Conjunto de datos
" y seleccionamos el primer elemento de la lista veremos que cambian los elementos del diseño.
Si apretamos las flechas de navegación de la paleta "Variables
", veremos que los datos y textos del diseño van cambiando.
Exportación a PDF
Enhorabuena. Ya tienes los datos vinculados, la parte más difícil. Ahora viene lo fácil: Crear los documentos individuales de las tarjetas, una por cada registro de datos o persona que trabaja en la empresa.
Los vamos a exportar como PDF/X-4:2010, preparados para imprenta. La operación tiene dos pasos: El primero es crear una acción de Illustrator para grabar un PDF de ese tipo. El segundo es ejecutar esa acción con un "lote
" (batch) invocando el uso de datos dinámicos:
Crear una acción en Adobe Illustrator
Si has usado acciones en Adobe Photoshop, esto va a ser muy sencillo: Se crea una acción que simplemente guarde el archivo como PDF con las especificaciones que nos convengan. Abrimos el menú "Ventana – Acciones
" y, en el submenú lateral izquierdo, seleccionamos la opción "Acción nueva
". Le damos un nombre descriptivo como "Guardar como PDF/X-4", por ejemplo, y apretamos el botón "Grabar". A partir de ahora, casi cualquier cosa que hagamos se registrará y se volverá a ejecutar al reproducir la acción. Lo que hacemos mientras graba es ir al menú " Archivo – Guardar como…". Elegimos "Adobe PDF
" y en "Ajuste preestablecido de Adobe PDF
", optamos por "PDF/X-4:2008
" —si estamos usando Illustrator CC, la opción real del subestandar PDF/X será PDF/X-4:2010
, por cierto.
Una vez hecho esto, detenemos la grabación de la acción apretando el botón cuadrado en la zona inferior de la paleta "Acciones
".
Guardar todos los documentos individuales como PDF/X
Ahora vamos a guardar todos los documentos individuales como PDF/X de una sola tacada. Da igual si la lista incluía 800 trabajadores, se crearán 800 PDF, uno por cada uno de los trabajadores con los datos personales que hayamos elegido.
En el submenú lateral izquierdo de la paleta de "Acciones
", vamos a la opción "lote
" (batch). Allí se ejecutará la acción que pidamos.
En el cuadro de diálogo siguiente, elegimos la acción "Guardar como PDF/X-4
", que acabamos de crear. En "Origen
", marcamos "conjunto de datos
". En "destino
", seleccionamos "Ninguno
" y en "Elegir
", seleccionamos el directorio donde queremos guardar los PDF terminados. En nombre de archivo elegimos la opción que nos convenga más —si es un gran número de datos, "Archivo+número
" es posiblemente la mejor opción. No marcamos nada más ya que la opción "detener si hay errores
" es buena —si queremos que se registren los errores en un archivo, elegimos esa opción e indicamos un nombre para el archivo de registro de errores.
Ya está terminado. Cada uno de los PDF contiene una tarjeta personalizada lista para su impresión. Un pequeño defecto que tiene esta ejecución por lote es que no añade la extensión PDF a los archivos creados, por lo que una vez terminada el proceso habrá que proceder al renombrado masivo de los archivos para añadir la extensión PDF. Nada que un viejo comando rename "*.* *.pdf
" no pueda ejecutar. Eso o cualquiera de los mil y un programas capaces de hacerlo —Adobe Bridge incluido, con su opción "Herramientas – Cambiar nombre de lot
e".
Como preparar una plancha repitiendo los mismos registros dinámicos en varios tarjetas
Una vez hemos aprendido a crear de forma automática muchos documentos con un mismo diseño y distintos datos, el paso siguiente es aprender a crear un documento en el que se repita varias veces el mismo diseño para aprovechar el uso del papel, ya que en la vida real ese es el procedimiento habitual.
Aplicando el mismo ejemplo, vamos a ver cómo se crea una plancha en la que se repitan 16 veces las tarjetas de visita que hemos creado para el personal de una supuesta empresa de exportación de carne de pelícano. La idea es que los datos sigan cambiando de forma dinámica pero que en vez de hacerlo una sola vez, lo hagan diecisieis.
Tomamos el diseño que hemos creado y preparamos la plancha con sus marcas de corte —disculpame si no explico cómo se hace eso porque o ya sabes cómo hacerlo o es tema de otro tutorial—.
Vuelvo a insistir en la conveniencia por comodidad de trabajar por capas. En mi caso, he colocado los elementos afectados por un mismo registro en una capa propia. Así, todos los textos de "NOMBRE
" van en su propia capa, llamada "NOMBRE
", por ejemplo.
Una vez los tenemos ordenados, seleccionamos todos los casos de textos que deben llevar una misma variable y pulsamos sobre el nombre de esa variable en la paleta de "Variables
". A continuación, pulsamos sobre el botón "Hacer dinámico el texto
que hay en la zona inferior de esa misma paleta. Eso aplicará la variable a todos los elementos, aunque tuvieran aplicada anterior mente otra variable —que sería sustituida—.
Una vez hecho eso, ya tenemos el documento preparado para aplicarle la acción en "Lote
" como hicimos con las tarjetas individuales. Si quieres ver cómo es un documento de ese tipo, aquí lo puedes descargar en un archivo comprimido (versión CS4 de Illustrator, casi 4Mb).
Añadir imágenes de forma dinámica y automática de un listado
Ahora vamos a aumentar la complejidad del trabajo con datos dinámicos añadiendo imágenes personalizadas para cada usuario. Como ejemplo, crearemos un lote de carnets de empleados de empresa—con fotografías ficticias—para las mismas personas a las que acabamos de crear tarjetas de visita.
Usaremos el mismo listado de datos agregando una columna de registros. La columna se llamará "FOTOGRAFIA
" y lo que contiene cada una de sus filas es simplemente el nombre de una imagen del empleado en cuestión en formato JPEG; por ejemplo: "samudio.jpg
".
Advertencia: En este caso ficticio hemos tomado las imágenes de todos los empleados en dos o tres sesiones y las hemos registrado llamándolas con el nombre de la persona correspondiente. Llamarlas de este modo no es imprescindible. Podríamos llamarlas por un número automático que les diera la propia cámara del tipo "DSC0018191.jpg
", por ejemplo, pero para mayor claridad en la explicación del ejemplo prefiero darles ese nombre.
Lo que no nos quitará nadie es la tarea de realizar de algún modo la identificación entre archivo de imagen y nombre de empleado que acabe reflejándose en la hoja de cálculo. Debe haber una identificación unívoca fotografía y usuario.
Lo óptimo sería poder usar algún programa de registro de datos automático en el momento de tomar la imagen pero si preferimos nombrar cada archivo a mano es problema nuestro —o, mejor dicho, del cliente que nos hace el pedido de los carnets y nos proporciona los datos y las imágenes.
Lo imprescindible es que, cuando volquemos los datos, la relación entre cada fotografía y el usuario al que corresponde debe estar establecida correctamente. Así, la fotografía "DCS00191.jpg
" debe identificar a Óscar Samudio y no a María José García, por ejemplo.
Éste punto es probablemente el punto más problemático de todo el proceso, ya que no tiene sentido automatizarlo todo y luego tener que apuntar en una libreta a mano los nombres para escribirlos luego a mano, ¿verdad? En un típico caso de pensar antes de ponerse a recoger los datos.
En cualquier caso, en una carpeta llamada "fotografías
" pondremos las imágenes a las que hacen referencia los nombres de la columna "FOTOGRAFIA
" de nuestra hoja de cálculo. En esa misma carpeta guardaremos el archivo final XML con los datos.
Unificar el tamaño y color de las imágenes
Una vez que todas las imágenes están en nuestro disco, procede que todas tengan el tamaño, resolución y modo de color que necesitamos. No queremos que cada una quede de su padre y de su madre. Para eso usamos Photoshop y lo hacemos por medio de una acción que aplicamos a la carpeta "fotografías
". No es imprescindible, pero sí muy conveniente.
Hacemos una acción de Photoshop que recorte automáticamente todas las imágenes a 26 x 32 mm., las pase a escala de grises y las deje a una resolución de 250 ppp.
Enlazar las imágenes correctamente en el XML
Cuando hagamos la conversión del archivo CSV de la hoja de cálculo al formato XML de Adobe Illustrator con la página Mr. Data Converter —como ya hemos aprendido a hacer anteriormente— veremos que el archivo XML contiene unas líneas nuevas, que hacen referencia a las imágenes similares a ésta:
<FOTO><p>file:///C:/trabajo_carnets/imagenes/samudio.jpg</p></FOTO>
El problema es que no se puede usar directamente, ya que la presencia de algunas marcas inapropiadas —como la de párrafo <p> y </p>— que hacen que el documento sea incorrecto para Illustrator y no funcione la entrada de datos.
La solución es molesta pero sencilla: Abrimos el archivo XML con un programa de tratamiento de texto sencillo que no altere el formato ni la codificación Unicode y mediante un "buscar/cambiar" reemplazamos la secuencia <FOTO><p> por <FOTO>, eliminando la marca <p>. A continuación, hacemos lo mismo con la secuencia </p></FOTO> , reemplazándola por </FOTO>, eliminando la </p>.
De ese modo, habremos eliminado las marcas de párrafo HTML que abrigaban a la referencia al archivo de imagen enlazado que darían errores en la importación.
<FOTO>file:///C:/trabajo_carnets/imagenes/samudio.jpg</FOTO>
Posible problemas con la ubicación de las imágenes
Hay una pega bastante importante en la forma en la que el XML de Adobe Illustrator hace referencia a archivos enlazados —sean de imagen o de tras cosa—. La referencia a la ruta es absoluta, no es relativa; es decir: No se hace referencia a la posición del archivo enlazado con respecto al archivo XML —eso es una referencia relativa—. La referencia que se hace es la posición del archivo en la unidad de disco o red donde se haya —es decir, su posición absoluta.
<FOTO>file:////C:/trabajo_carnets/imagenes/samudio.jpg</FOTO>
Eso implica que se debe especificar toda la secuencia de la ruta y que, si cambiamos mínimamente la ruta de la ubicación de las fotos —alterando el nombre de alguna de las carpetas que las contienen o la letra de unidad donde se hayan—, esa referencias a la posición de los archivos de imagen dejarán de funcionar.
<FOTO>file:////D:/carpeta_distinta/pics/samudio.jpg</FOTO>
La solución es molesta pero sencilla: Desde Illustrator, exportamos de nuevo la biblioteca de variables. Abrimos el archivo XML nuevo y copiamos sólo la nueva referencia de ruta. Abrimos el archivo XML antiguo y hacemos un buscar/cambiar cambiando la antigua ubicación por la nueva.
Una vez guardado nuestro nuevo archivo XML con las imágenes correctamente referenciadas, podemos volver a Illustrator.
Asignar las variables a la plantilla del carnet
En un nuevo diseño de Illustrator para el carnet de empleado —muy similar al de la tarjeta de visita que hicimos anteriormente— hemos preparado los elementos por capas. Aquí, una vez más, la comodidad de trabajar con ellas no tiene precio.
Cargamos la biblioteca de variables reformada y procedemos a asignar las variables a los elementos, como hicimos antes.
Cuando toque el turno a la imagen, hacemos lo mismo que con las otras variables. La diferencia es que en este caso el ofrecimiento de Illustrator es "Hacer dinámico el archivo enlazado
". Lo aceptamos pulsando el botón correspondiente.
Si lo hemos hecho bien, el resultado será que, al recorrer los registros de la lista en la paleta "Variables
", las imágenes cambiarán al mismo tiempo que los nombres.
Hecha esta comprobación de que los registros cambian adecuadamente, ya podemos proceder a ejecutar como "lote
" la acción "Crear PDF
".
Conclusiones
Si somos una empresa que necesita crear cientos de carnets variados en distintos momentos de nuestra actividad esta solución de crear diseños con datos dinámicos con Adobe Illustrator no es la ideal. Imaginemos una Feria de eventos empresariales, por ejemplo, que necesita identificar a miles de visitantes a distintas reuniones y jornadas de empresa. Para ese nivel de necesidad, existen soluciones integradas de creación directa de carnets de las llamadas id card print on-demand, que permiten crearlos e imprimirlos en el acto o por lotes de forma muy automatizada sin necesidad de un operador con grandes conocimientos.
Además de que no todo el mundo tiene esas necesidades, el método con Illustrator permite hacer la papelería de empresas u organismos similares con gran calidad de diseño y acabado sin que los costes sean disparatados —particularmente porque se puede contratar a un pequeño estudio de diseño o artes gráficas que sea quien se encargue de resolver el encargo mediante impresión tradicional o digital.
Para cualquier usuario medianamente avanzado de Illustrator, una vez que sabe cómo se hace, aplicar esta técnica no tiene grandes misterios. Esa es su virtud principal. Si has seguido este ejemplo, has apreendido a crear una innumerable cantidad de tarjetas, diplomas o carnets con Adobe Illustrator y, lo que es mejor, en cuanto necesites más, podrás crearlos sin mayores problemas siempre que seas ordenado, guardes tus trabajos de forma organizada y tus clientes te proporcionen los datos necesarios en una hoja de cálculo como Excel.
Agradecimiento
Comprender cómo se hace esta operación y conseguirlo hubiera sido completamente imposible sin la generosa y clarísima explicación del diseñador brasileño João Faraco, que tiene, entre otros, un espléndido videotutorial en portugués sobre el tema.
[© Gustavo Sánchez Muñoz, 2024] Gustavo Sánchez Muñoz (también identificado como Gusgsm) es el autor de esta página. Su contenido gráfico y escrito se puede compartir, copiar y redistribuir total o parcialmente sin necesidad de permiso expreso de su autor con la única condición de que no se puede usar con fines directamente comerciales (es decir: No se puede revender, pero sí puede formar parte como citas razonables en trabajos comerciales) y los términos legales de cualquier trabajo derivado deben ser los mismos que se expresan en la presente declaración. La cita de la fuente con referencia a este sitio y su autor no es obligatoria, aunque siempre se agradece.
Comentarios
Añadir nuevo comentario