Cómo usar datos dinámicos con Adobe Illustrator

    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 "" 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 lote".

    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.

    39 comentarios

    Mi más enhorabuena por este post

    Mi más enhorabuena por este post. Te aseguro que habrá mucha gente que agradecerá tu artículo, puesto que es una de esas zonas obscuras de Illustrator de la cual no existe prácticamente información ni tan siquiera en inglés...

    Te dejo algunos enlaces de donde yo saqué bastante jugo y que pueden contribuir a la causa:

    Alguno se me olvida, pero bueno...

    La verdad es que yo tenía pensado desde hace bastante tiempo haber escrito algo sobre ello, pero dada la relativa complejidad del asunto se quedó solo en la intención.

    Yo he llegado a implementarlo en mi flujo de trabajo para mapas (aunque de momento no lo utilizo en toda su extensión) y doy fe de que el uso del XML en Illustrator es bastante puñetero.

    Un saludo

    Alfonso de Tomás

    Gracias :)

    Muchas gracias, Alfonso

    Estoy en lo de ampliar el tema (en esta u otra página) añadiendo cómo automatizar lo de las fotos, pero es un poco más complejo :P.

    El problema que tiene para mi el uso de XML con los programas de Adobe es que nunca es "El XML que quiero, único e inequivoco". He andado trasteando con XML para un proyecto que hicimos en inDesign y, buff... es complejo pero viable

    La pega que le veo al XML con Illustrator es que no se puede usar un validador (como el de oXygen XML) con facilidad, ya que ni siquiera valida cuando guardas la biblioteca de variables del archivo. Eso es una cosa bastante molesta.

    Hay un grupo de InDesign y XML en Linkedin llevado por Dorothy Hoskins, que tiene algún libro sobre el tema muy pero que muy útil (gracias a él pude avanzar algo con aquello ;) ).

    PS: Como verás, te he editado los enlace para que fueran descriptivos. Es problema mío que aún no he permitido el uso de HTML en los comentarios.

    Muy util

    Gracias por el truco, pero yo me preguntaba si se puede usar un metodo parecido para crear tarjetas identificativas para 120 personas. Lo que necesito es que por cada placha, cada tarjeta que la compone tenga un nombre distinto, de modo que pueda con una sóla plantilla imprimir las 120 tarjetas de indentificacion sin tener que hacerlo manualmente.

    gracias de antemano

    Imponer los PDF en una plancha aparte

    Pues sinceramente, el sistema más sencillo con diferencia aunque pueda parecer lo contrario, es imponer los PDF resultantes en una plancha aparte —digamos un A3, por ejemplo— e imprimir eso.

    De hecho, si dispones de InDesign, eso es tremendamente sencillo y rápido y, si te preparas una plantilla con las cajas de imagen apropiadas y las marcas de corte y, si necesitas, de registro, lo haces de forma más sencilla que intentar hacerlo en Illustrator, donde puedes tener más fallos intentando controlar las 120 variables de un golpe en vez de controlar solo tres o cuatro.

    En cuanto tenga un momento haré un pequeño tutorial de cómo hacerlo, aunque insisto que es bastante sencillo.

    Un saludo

    PS: Y perdón por la tardanza en responder

    Es con InDesign

    Muchas gracias,

    El tutorial que indicas es con inDesign, que es un bicho completamente distinto. También se puede fusión de datos con Photoshop, por cierto, que a todos se nos olvida :)

    Hola todo marcha bien pero en

    Hola todo marcha bien pero en la parte de digitar solo los nombres de las fotos en excel y luego generar el archivo xml tengo problemas porque cuando me convierte a xml el codigo solo tiene el nombre del archivo y no la ruta y ya probe incluyendo la ruta completa y no me genera la ruta como te la genera a tu en el xml y por lo tanto no puedo vincular imagenes.

    Te agradeceria un mundo que me respondieras, gracias!

    Ponla a mano con cambiar/buscar

    Buenos días, Juan

    Realmente es un tema de Excel pero como suy un cutre y estoy con la alergia, en vez de investigarlo a fondo, te lo voy a poner fácil con una solución de apaño a la española: Creas los nombres de foto anteponiendo algo único, como, por ejemplo "xxx" o un guión bajo o algo así, luego abres el archivo XML resultante en un procesador de texto sin formato como se ha mencionado en la página. En otra ventana, buscas la indicación de ruta del archivo que creó Illustrator. Pongamos, por ejemplo, que fuera "file:////D:/carpeta_distinta/pics/". Copias ese código y te vas al XML exportado. Le das un buscar cambiar automático que cambie "xxx" por "file:////D:/carpeta_distinta/pics/" y se acabó tu problema.

    Disculpa la guarrería pero estoy un poco atacado por el polen.

    Muchas gracias por responder,

    Muchas gracias por responder, ya hice todo lo que tenia que hacer y la verdad que no pude vincular de forma dinamica las imagenes, de ninguna forma se vinculan las imagenes, los textos si! todo va bien solo ese es el problema pero gracias por responder espero que sigas mejor y felicidades esta pagina es de las mejores que he leido en internet tus post son demasiado productivos :)

    Posiblemente no está en Unicode

    Hola

    Si te fijas, en la página puse:

    "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 ;)".

    Es posible que eso sea lo que te esté ocurriendo. A veces ni siguiera es evidente y todo parece normal. A mi me pasó algo así haciendo las pruebas. Pese a que creía que los programas de Microsoft, Mozilla y Adobe se pasaban todo en Unicode, se ve que no era así.

    La solución o apaño que yo encontre fue usar de intermedio un editor de código llamado jEdit que además de ser de código abierto y gratuito me asegura que la codificación que elijo es la que le pido. Pegaba el texto salido de Mr. Dataconverter en el jEdit y lo guardaba con la codificación unicode UTF8. Luego lo abría y pegaba y el problema que no se veía por ninguna parte desaparecía.

    Te sugiero algo similar

    Excelente

    ¡Qué grande! Mejor explicado imposible. Fenomenal. Gracias por subir algo así. Me ha sido muy muy útil.

    Data variable

    Me parece excelente este post. He comenzado a incursionar en el tema de la data variable y es un muy buen aporte. Tanto para principiantes como yo, como para cualquier otro que pueda tener algunas dudas al respecto.

    ¡Impecable, gracias!

    Me saco el sombrero. Te felicito y agradezco a la vez. IMPECABLE. Por supuesto me trabé con el tema del xml pero lo resolví así: exporté como CSV, y con el Mr. Data Converter (genial) hice el xml y ahí funcionó impecablemente.

    Consulta

    Saludos. Excelente tutorial. ¿Sabe decirme cómo puedo mantener el formato de un texto en una variable de texto dinámico? Me explico: quiero que el nombre de la tarjeta tenga un "Nombre", sí, pero que la primera letra del texto tengo un color azul y el resto del texto en negro.

    Cuando cargo los datos del XML no mantiene dicho formato, sino que pone todo el texto en negro. O sea, no mantiene la configuración que yo le doy. ¿Sabe como puedo solucionarlo?

    Muchas gracias de antemano.

    No sé si se podrá en Illustrator. Creo que no.

    Buenas tardes

    Si te fijas, el control del formato de los objetos variables se hace mediante "estilos gráficos". La ventaja que tienen es que permiten un formateo muy potente, cambiando texturas, rebordes o lo que más te apetezca. La desventaja es que sólo controla objetos enteros, no caracteres dentro de una cadena de texto, ni siquiera párrafos distintos dentro de una misma caja o trazado.

    Para controles de ese tipo, posiblemente habría que usar Adobe InDesign, lo que a su vez tiene otras desventajas. La primera es que no tiene la capacidad de formateo por objeto tan potente de Illustrator.

    Al menos, hasta donde yo sé.

    Agradecimientos

    Hola que tal Gustavo, saludos desde Morelia, Michoacán, México, antes que nada te agradezco la publicación, es la segunda vez que realizo la automatización con bases relativamente extensas, esta segunda vez me costo mas trabajo porque me marcaba error en la validación, leyendo un poco por la red me pude familiarizar con el proceso, cabe mencionar que tengo conocimiento básicos de programación pero gracias a tu publicación me facilito en gran manera la tarea, sin mas, recibe un mis mas sinceros agradecimientos.

    Muy claro y con los trucos a la española

    Felicidades. Has conseguido que una mente despistada como la mía se lea el artículo entero.

    Quiero meterme en el asunto por mi cuenta ya que hasta hace poco lo hacía a través de la imprenta y siempre salía bien aunque había fallos que había que corregir en una segunda vuelta. Ellos lo hacían con un plug-in de In-Design CS2 (creo recordar), pero claro, por muy amigos que seamos, me cobran el trato variable de datos. No estoy segura de que me vaya a salir porque quiero meter muchos datos (geografía mundial con banderas) y quizá no sea rentable en cuestión de tiempo. Los trucos a la española, al final, son los que mejor me resuelven el problema (que manda huevos a veces...). Como buena diseñadora siempre me lo dejo para el último momento y ya voy con retraso XD. Si me sale bien y me decido ya te contaré cómo lo conseguí.

    Me declaro fan de tu blog desde ya.

    Un saludo desde Alicante

    Es igual en todas partes

    No es una ñapa ni una chapuza. Es una técnica estándar de curro. No te creas que en los Estados Unidos o Alemania atan los perros con longaniza tecnológica ;)

    Muchas gracias por el post

    Lo primero, muchísimas gracias por el post, me ha servido muchísimo para poder ahorrarme un montón de trabajo.

    Y ya que a mi me ha servido pongo aquí varios "problemas" que he detectado yo a la hora de generar y cargar los XML. Después de mucho (mucho mucho) probar y de darme el Illustrator error tras error he llegado a la conclusión de que:

    - No acepta que las celdas contengan el símbolo "&".

    - No acepta, al menos en mi caso, que existan dos celdas con el mismo texto en la primera columna. Yo tenía un excel de 5 columnas y en las columnas 2, 2, 4 y 5 no me ha dado problemas con las repeticiones, sin embargo si existían dos valores iguales en la primera daba error al cargar el XML (par darme cuenta de esto me ha costado...)

    Igual son cosas obvias pero yo, que no entiendo casi nada de XML, desde luego no lo sabía y si a alguien le puede ayudar...

    Ah, para guardar el XML yo he copiado el texto directamente de Mr. Data Converter y lo he pegado y guardado en XML con Notepad++ y perfecto.

    Un saludo

    Gracias y mira lo del símbolo &

    Para lo del & en XML, hay que cambiarlo por una referencia HTML (XML) escribiendo &amp; Es decir: Donde dice, por ejemplo John&Smith, hay que escribir John&amp;Smith. Eso ocurre con otros caracteres especiales.

    Lo del Notepad++ es perfecto porque su formato natural si no recuerdo mal es UTF-8, que es lo fetén para esto.

    Lo de la repetición de textos en las dos primeras se me hace raro, pero será cosa de meigas o de que es así. Gracias por comentarlo.

    Un saludo y muchas gracias :)

    Muchas gracias, voy a probar

    Muchas gracias, voy a probar lo del & que me va a ahorrar muchísimo trabajo.

    Lo de la repetición si debe ser cosa de meigas...pero que trabajo me dio.

    Un saludo

    No me salen las fotos de carnet

    Hola, como no, indicarte que es un tutorial increible. Estoy muy agradecido.

    Tengo una duda que me gustaría que me solventaras, si es posible.

    A la hora de añadir la foto de carnet, he creado el XML como dices. Inserto una imagen cualquiera en el carnet y le digo que sea dinamica. Cargo la biblioteca con la tira modificada como indicas pero, cuando recorro los registro, la imagen no cambia; es la misma que añadí yo para crear la capa.

    ¿Quizas no es así como debería crear la capa? ¿o me está fallando el xml?

    Un saludo

    Ejemplo de un una línea del XML:

    <v:sampleDataSet dataSetName="1504">
    <nsocio>
    <p>1504</p>
    </nsocio>
    <apellidos>
    <p>APELLIDOS</p>
    </apellidos>
    <nombre>
    <p>NOMBRE</p>
    </nombre>
    <dni>
    <p>DNI</p>
    </dni> <foto>file:////P:/IMAGENES/fotoscarnet/1504.jpg</foto>
    </v:sampleDataSet>

    Creo que ni yo me entendí

    Creo que ni yo me entendí jaja. Bueno, tengo un problema al momento de hacer la plantilla para impresión. Cuando hago la plantilla, los datos no se ponen apropiadamente. Es decir, hago la plantilla para impresion de 16 tarjetas, pero en vez de que se guarden 16 tarjetas diferentes. Se guarda 1 sola tarjeta 16 veces. ¿Cómo hago la plantilla con 16 tarjetas diferentes?

    Yo haría una imposición

    Vale. Entendido ;)

    El problema se puede resolver preparando la plancha de 16 tarjetas bien colocadas y luego tratándolo todo como si fuera una única gigantesca tarjeta; es decir, que si una tarjeta tiene 6 variables y en la imposición tienes unas 16 tarjetas, debes crear 96 variables, o, al menos, duplicar las seis unas 16 veces y luego desengancharlas y engancharlas hasta cumplir las 96 diferencias.

    En mi humilde opinión, es un trabajo excesivo, tedioso y proclive a la confusión, que es lo que se intenta evitar con la automatización. Sólo merecerá la pena si vas a hacer unas... qué se yo... ¿mil seiscientas tarjetas? Si vas a hacer menos, te merece más la pena lo que he indicado arriba, hacer la plantilla de una plancha de 16 tarjetas, con sus 16 posiciones perfectamente dispuestas —esto lo puedes hacer con Illustrator o, si lo tienes, con InDesign, que es quizás un poco más cómodo—. Generas los PDF y luego comienzas a "Colocar": una primera plancha de 16, guardas el archivo como una copia —"plancha_carnets_01", por ejemplo— y haces la siguiente —"plancha_carnets_02"—, sustituyes los PDF colocando la siguiente resma de 16 PDF y así hasta acabar. Si son unos 400, por ejemplo, tendrás que hacer esto unas 25 veces.

    Es cuestión tuya elegir una de las dos operaciones, pero recuerda: Cada variable cuyo nombre se repita por haber sido duplicada tendrá exactamente el mismo valor.

    No me enlaza las fotos + problema con las "comas"

    Buenas de nuevo,

    Después de que hace tiempo consiguiese preparar la plantilla solo con textos, gracias a tu (inestimable) ayuda, ahora llevo un tiempo intentando dar el siguiente paso y añadir fotografías.

    El problema está en que no consigo que el xml me las enlace.

    En la columna de excel pongo el nombre de la fotografía (p.ej.: aceite.jpg) pero al copiarlo y pegarlo en Mr. Data Converter y luego en el Notepad++ el campo de foto me sale en 3 líneas:

    <Foto>
    <p>aceite.jpg</p>
    </Foto>

    ¿Cómo puedo hacer para que las enlace? Es más, como puede saber el Mr. Data Converte cuál es la ruta que ha de poner (igual es algo obvio pero se me escapa)

    He probado sustituyendo esas 3 líneas, como indicas en el post, por “<Foto>File:///C:\Users\ALFONSO\Desktop\Pruebafotos\aceite.jpg</Foto>” pero nada, tampoco, en cuanto le doy a "Cargar biblioteca de variables" me sustituye la variable de archivo enlazado a texto.

    Ya por último, ¿hay alguna posibilidad de poder importar textos con "comas", por ejemplo "El aceite, también llamado oro líquido, se extrae de..."

    Muchas gracias y perdón por la chapada.

    Un saludo,

    Alfonso

    ¡¡¡Lo logreeeee!!!

    Después de varias horas leyendo y tratando de entender el tutorial, tuve que apoyarme un poco en la documentación oficial de Illustrator para comprender el significado y uso de cada acción.

    Y después de varios intentos y ejercicios de prueba y error logré que funcionaran la carga dinámica de fotografías, noté que es muy importante:

    1. Tener clara la ruta absoluta en donde se encuentran las imágenes que voy a enlazar, en mi caso: "/Users/rafaelgaviria/Dropbox/Planeedi/CEMA/carnes-2016/02-primaria/_0002.JPG" (Aclaro que trabajo en Mac).

    2. Las imágenes no pueden empezar por números en mi caso las nombre así: _0001.JPG, _0002.JPG, etc.

    3. Después de definir las variables de texto, dejé como último paso la fotografía, esto requiere de varios sub tareas:

      • Colocar la imagen.

      • En el panel de variables crear una nueva variable (yo la nombré de una vez: "FOTO").

      • Seleccionar el objeto y luego enlazarlo a la variable que cree en el paso anterior.

      • Y por último le seleccionamos el botón inferior "Hacer dinámico el archivo enlazado" del panel de variables.

    En cuanto a las etiquetas <p> </p> que encierran el campo "FOTO" las eliminé abriendo el archivo XML con Sublime Text (Un editor de código) y haciendo una búsqueda apoyándome en la palabra ".JPG" para identificar la línea y con esa misma búsqueda solo tuve que pegar antes de cada nombre de archivo la ruta absoluta con la que Illustrator hace el enlace dinámico.

    Espero que este aporte les ayude completar y entender el concepto del manejo de estos archivos dinámicos.

    :)

    Muchas gracias por documentar la experiencia y el progreso.

    Los PDF se sobreescriben

    Hola,

    Muchas gracias por la guía, está perfectamente explicada y documentada, cosa que me ha permitido llegarlo a (casi) conseguir.

    Me encuentro con un problema: al reproducir la acción del guardado de PDF, me genera un solo archivo (.pdf) que me va sobrescribiendo al anterior.
    Sabes a qué se puede deber?

    Gracias de nuevo,

    Marc

    Solución al problema

    Por si a alguien le sirve, ya encontré el problema: no seleccioné la opción "anular comandos de acción guardar" en la ventana lote.

    Gracias

    Por volver y comentarlo :)

    Texto en PDF

    Buenas, el tutorial es magnífico, muchas gracias!

    Lo que ahora me tiene liado es otro tema que aprovecho para preguntar, por si me pudieras echar un cable.

    Necesito crear desde Illustrator, Photoshop o Indesign, un PDF con capas en las que cada capa tenga opciones de color, etc. La idea es pasar un pdf para que el cliente pueda elegir distintas combinaciones de color y diseño sin necesidad de abrirlo en un programa de diseño, únicamente con el Acrobat.

    Hasta aquí la cosa es relativamente fácil (aunque sea a mano) el problema viene cuando quiero crear una capa editable de texto desde pdf pero que mantenga los efectos de texto de Illustrator. No sé si se puede hacer tan siquiera...

    Gracias de antemano.

    Cambiar el tamaño de una gráfica

    Hola,

    ¿Hay manera de hacer lo mismo pero que, en lugar de los nombres, cambie el tamaño de una figura dependiendo de los valores que ingreses a través de un XML? Es decir, tengo una plantilla para hacer una gráfica para cada persona. En esta plantilla aparecen 4 columnas que van del 0 al 10 y, dependiendo de las personas, cambian estos valores, ¿se puede automatizar de igual manera?

    ¡Saludos!

    Creo que sí

    Hola

    Pues no lo hecho nunca, pero en la primera búsqueda de San Google, aparece un tutorial llamado "Automatizar gráficos con datos dinámicos usando Adobe illustrator" (Automating Data-Driven Graphs Using Adobe Illustrator) que parece decir que sí. Está escrito de forma muy clara pero sucinta, dejando los detalles para los enlaces (muy recomendables) que va dejando caer de otros tutoriales y de utilidades para ejecutar los pasos necesarios. Yo le echaría un vistazo con calma porque creo que se puede y que ahí lo indica razonablemente.

    Obviamente, cuando tenga un rato, ganas y tiempo, le echaré yo mismo un vistazo para deducir un tutorial en español —pero también me he prometido iniciar rutinas de ejercicio físico y ahí estoy—.

    Saludos y tal

    Muchas gracias

    Normalmente tenia que imprimir montones de formularios haciendo copy-paste, este tutorial me ha quedado a la medida. solamente me gustaria automatizar el botón imprimir, ya que al hacer el batch aun debo dar imprimir en cada uno,

    Gracias!

    Con Acrobat o directamente con Windows

    Hola,

    Puedes unir los documentos en un único PDF con Acrobat Pro o cualquier otra utilidad que tenga esa capacidad y mandar eso a imprimir de un tirón.

    También, si trabajas con Windows, simplemente seleccionas en cualquier ventana del explorador todos los documentos que quieras imprimir, aprietas el botón derecho del ratón y le das a la opción "Imprimir". Se imprimirán con la impresora que tengas predeterminada ("por defecto") y con los parámetros que ésta tenga determinados como predefinidos.

    Saludos y tal :)

    Dos anotaciones

    Un usuario anónimo de origen poco claro (por eso borro sus enlaces) hace un comentario en inglés que resumo:

    1. Hay que estar seguro de que los textos no están agrupados. No se pueden asignar variables a textos agrupados.

    2. Los archivos gráficos deben estar enlazados, no incrustados.

    Lamento no dejar los originales pero ni estaban en español ni quedaba claro que fueran comentarios legítimos.

    Añadir nuevo comentario