No es, ni más ni menos, que la tarea que se hace habitualmente desde un procesador de textos para personalizar, por ejemplo, cartas.
Scribus Generator es un script, escrito en Phyton por Ekkehard Will, que permite hacer esto mismo, pero desde Scribus.
Veamos un ejemplo ficticio, desde cero y paso a paso, que hace uso de esta característica.
Supongamos que lo que necesitamos es hacer e imprimir unos certificados con lo que vamos a agradecer a varios ilustres integrantes de la comunidad de software libre por sus aportes a la misma. Por lo tanto, los diplomas deberán tener, cada uno, datos personalizados.
El procedimiento podría constar de cuatro etapas:
- Hacer el diseño básico del diploma o certificado en Inkscape.
- Guardar en un archivo de Calc (u otra hoja de cálculo) la información variable para la personalización.
- En Scribus, importar el archivos creado en la etapa 1, agregarle los textos fijos y los campos variables. Correr el script en cuestión y generar tantos PDFs como filas tenga el archivo guardado en la etapa 2.
- Unir todos los PDFs en uno solo con, por ejemplo, PDFChain.
Hacer el diseño básico con Inkscape
- Abrir Inkscape. Ir a Archivo / Importar desde Open Clip Art Library... En los criterios de búsqueda escribir "Frames" y elegir el resultado más apropiado. Atención: antes de realizar este paso, conviene ver si el sitio Open Clip Art Library está funcionando, ya que días atrás, estuvo más veces caído que funcionando. Si intentan hacer este paso con el
sitio caído, Inkscape da error y se cierra.
Para este ejemplo, elegí Frames Set III (obra de Meister).
- De esta manera se obtienen 6 posibles marcos para el certificado en cuestión. Luego, hay que elegir uno de los seis marcos, rotarlo 90 grados, definir el documento de Inkscape en formato A4 horizontal y centrar el marco elegido en la página (y, posiblemente, ajustarle el tamaño):
- A continuación hay que agregar algunos elementos gráficos para completar el diseño (los textos se colocarán posteriormente en Scribus). En este caso, agregué el logo del blog y le di color al marco, entre otros detalles, y guardé el archivo:
Guardar la información variable en un archivo de Calc
- En esta segunda parte hay que crear el contenido variable. O sea, los textos personalizados.
Para ello, hay que abrir LibreOffice Calc y generar un documento con, por ejemplo, tres columnas, con los títulos (en la primera fila): nombre, motivo y motivo-ing. Después, en cada fila hay que escribir el nombre del "destinatario" del diploma y el motivo por el que lo recibiría (en la segunda columna en español y en la tercera, en inglés). - Esta es una lista muy parcial de los datos que podría tener ese archivo:
nombre motivo motivo-ing Franz Schmid el programa Scribus Scribus software Peter Linnell el programa Scribus Scribus software Paul Johnson el programa Scribus Scribus software Craig Bradney el programa Scribus Scribus software Petr Vanek el programa Scribus Scribus software Riku Leino el programa Scribus Scribus software Craig Ringer el programa Scribus Scribus software Andreas Vox el programa Scribus Scribus software Jean Ghali el programa Scribus Scribus software Ekkehard Will el proyecto Scribus Generator Scribus Generator project superpiwi el blog Ubuntu Life Ubuntu Life blog Joaquín Herrera Goás el sitio web Joaclint Istgud Joaclint Istgud web site Alexandre Prokoudine el sitio web Libre Graphics World Libre Garphics World web site Jesús David Navarro la Bitácora de jEsuSdA jEsuSdA's blog heathenx los videotutoriales de screencasters.heathenx.org screencasters.heathenx.org videotutorials Richard Querin los videotutoriales de screencasters.heathenx.org screencasters.heathenx.org videotutorials Guillermo Espertino (Gez) el blog OHWeb OHWeb blog Ariel Corgatelli la revista TuxInfo TuxInfo magazine Jorge Cacho Hernández la revista TuxInfo TuxInfo magazine Ronnie Tucker la revista Full Circle Full Circle magazine Diego Samuel el sitio web Cuaderno de Novato en Debian Cuaderno de Novato en Debian web site Fernando da Rosa el blog Fernando da Rosa Morena Fernando da Rosa Morena's blog ginger coons la revista Libre Graphics Libre Graphics Magazine Ana Carvalho la revista Libre Graphics Libre Graphics Magazine Ricardo Lafuente la revista Libre Graphics Libre Graphics Magazine Markus el sitio web graphics@linux graphics@linux web site novatillasku el sitio web novatillasku.com novatillasku.com web site - Al archivo lo guardé en formato CSV.
Ahora sí, le toca el turno a Scribus
- Llegado este punto, estamos en la parte central de esta entrada. Hay que abrir Scribus y crear un documento de tamaño A4 apaisado.
Luego, ir a Archivo / Importar / Get vector file... y buscar y seleccionar el archivo creado con Inkscape en el paso 1.
A continuación redimensionarlo y centrarlo en la página:
- Luego, se ingresan los textos "fijos". En este caso utilicé la fuente PT Sans.
El texto podría ser:
entrega el presente diploma a...
por su contribución a la Comunidad del Software Libre con...
Dado que el diploma sería bilingüe, también va el mismo texto, en inglés:
awards this diploma to...
for contribution to the Free Software Community with...
- Para ingresar los campos variables (en este caso el nombre y el motivo del "reconocimiento") se debe escribir el título de cada una de las columnas de archivo CSV, creado en el paso 2 de este tutorial ("nombre", "motivo" y "motivo-ing"), entre "%VAR_" y "%".
Se debe escribir en el tipo de letra, con el color y el tamaño que se quiera que tenga el resultado final (en el ejemplo utilicé la fuente Lobster 1.4 para el nombre). El archivo de Scribus listo para correr el script, se vería así:
- Con el archivo CVS con los datos (creado en el paso 2) y el diploma listo para recibirlos, sólo queda descargar el script y descomprimirlo. Para ejecutarlo, desde el archivo de Scribus, hay que ir a Script / Ejecutar script...
Y en la ventana que se abre, buscar y seleccionar el script recién descomprimido (ScribusGenerator.py).
Se abre la ventana del Scribus Generator y en ella hay que indicar el camino hacia el archivo de datos (CVS), hacia el propio achivo de Scribus y un directorio donde se guardarán los PDFs resultantes.
- Al pinchar el botón Generate, el script crea tantos PDFs como filas de datos haya en el archivo CVS (en este ejemplo, 28). Cada PDF queda de una página con el diploma de correspondiente a una de las personas listadas en el archivo CVS.
Para terminar, se unen todos los PDFs en un archivo único
- Este último paso es por comodidad y prolijidad, y consiste en unir todos los PDFs en un PDF único. Para ello debemos instalar pdftk y pdfchain. (*) Luego de tener estos dos programas instalados, hay que abrir el pdfchain, y añadir los PDFs a unir:
- Al pinchar en Guardar, pide un nombre para el nuevo PDF y lo genera.
Una limitación del programa es que soporta hasta 26 archivos simultáneos, así que la unión de todos los diplomas (eran 28) tuve que hacerla en dos etapas.
¡En una de esas, alguno de los "homenajeados" pasa por aquí y se imprime su propio diploma!
(*) ACTUALIZACIÓN: Para esta última parte del tutorial, pdf shuffler parece ser una mejor opción, ya que no tiene la limitación de cantidad de archivos (o si la tiene, es mucho más alta que los 26 que soporta pdfchain).
[ ACTUALIZACIÓN del 29 de julio de 2015 ]
El usuario berteh2be publicó un video (en inglés) explicando el uso de este Script, pero agregando el uso de más variables, de forma de modificar los colores, posiciones, imágenes, tipografías, etc. Realmente muy interesante, aquí lo tienen:
Me quito el sombrero maestro, por la calidad y la claridad en la explicación falta un diploma para usted. Y de paso me apunto dos nombres más que no conocía en la lista :P
ResponderBorrarUn saludo!
Mardigann:
ResponderBorrarLos "diplomas" son para los que van iluminándonos el camino.
Por mi parte, me siento sólo como un espejito para reflejar y aumentar esa luz.
Gracias por el comentario.
Muchas gracias!! no encontraba una solución similar para Scribus
ResponderBorrarMuchas gracias, es justo lo que andaba buscando ahora con el fin de curso...
ResponderBorrarMe interesa al revés. pasar la información metida en el formulario scribus a una base de datos. a Excel o firebird etc. alguna base de datos compatible.
ResponderBorrarJust wanted to let you know this script has been updated with more interesting features and is now available from github: https://github.com/berteh/ScribusGenerator/
ResponderBorrar... and it can be used with data from databases as well, as long as they can export to csv. some examples (mysql, postgresql, sqlite..) at https://github.com/berteh/ScribusGenerator/#database-source
También podría hacerse solo con InkScape y Mustache
ResponderBorrar