Tengo un sitio web multilenguaje y necesito automatizar el proceso de actualización de textlayers en archivos psd desde una fuente csv.Automatice Photoshop para insertar texto desde el archivo
Sé que podría haber fallas en la psp debido a los anchos modificados, pero de todos modos sería útil tener el texto dentro de los documentos.
¿Cuáles son mis opciones?
EDIT:
Murmelschlurmel tiene una solución de trabajo. Aquí está el enlace a la documentación de Adobe.
El formato del archivo csv no es tan agradable: se necesita una columna para cada variable. Esperaría una fila para cada variable.
Funciona con diéresis (ä, ö, etc)
EDIT 1:
Otra solución es utilizar com para automatizar Photoshop. Eso es bueno si tienes un par de plantillas (botones) que necesitan un cambio de texto. Aquí está mi script en python que podría ayudarte a empezar.
Es necesario tener un archivo de Excel con columnas: TemplateFileName, TargetFileName, TargetFormat, texto (es decir template.psd, el botón 1, gif, NiceButton). La primera fila de la hoja no se utiliza. La plantilla de psp solo debe tener 1 textlayer y no puede tener grupos de capas.
import win32com.client
import xlrd
spreadsheet = xlrd.open_workbook("text_buttons.xls")
sheet = spreadsheet.sheet_by_index(0)
psApp = win32com.client.Dispatch("Photoshop.Application")
jpgSaveOptions = win32com.client.Dispatch("Photoshop.JPEGSaveOptions")
jpgSaveOptions.EmbedColorProfile = True
jpgSaveOptions.FormatOptions = 1
jpgSaveOptions.Matte = 1
jpgSaveOptions.Quality = 1
gifSaveOptions = win32com.client.Dispatch("Photoshop.GIFSaveOptions")
for rowIndex in range(sheet.nrows):
if(rowIndex > 0):
template = sheet.row(rowIndex)[0].value
targetFile = sheet.row(rowIndex)[1].value
targetFileFormat = sheet.row(rowIndex)[2].value
textTranslated = sheet.row(rowIndex)[3].value
psApp.Open(r"D:\Design\Produktion\%s" % template)
doc = psApp.Application.ActiveDocument
for layer in doc.Layers:
if (layer.Kind == 2):
layer.TextItem.Contents = textTranslated
if(targetFileFormat == "gif"):
doc.SaveAs(r"D:\Design\Produktion\de\%s" % targetFile, gifSaveOptions, True, 2)
if(targetFileFormat == "jpg"):
doc.SaveAs(r"D:\Design\Produktion\de\%s" % targetFile, jpgSaveOptions, True, 2)
También he encontrado útil este video: http://www.youtube.com/watch?v=i9Ms34nYRFI –
tutorial sobre los datos de diseño impulsado: http://roderickvella.wordpress.com/2014/12/30/photoshop-data -driven-graphics / – Vince