Automatiser Photoshop pour insérer du texte à partir d'un fichier

J'ai un site web multilingue et ont besoin d'automatiser le processus de mise à jour textlayers en psd fichiers à partir d'un csv-source.

Je sais qu'il pourrait y avoir des problèmes dans l'psp à cause d'un changement de la largeur, mais de toute façon il serait d'une grande aide d'avoir le texte à l'intérieur des documents.

Quelles sont mes options?

EDIT:

Murmelschlurmel a une solution de travail. Voici le lien vers la documentation Adobe.

http://livedocs.adobe.com/en_US/Photoshop/10.0/help.html?content=WSfd1234e1c4b69f30ea53e41001031ab64-740d.html

Le format du fichier csv n'est pas si agréable: vous avez besoin d'une colonne pour chaque variable. Je m'attends à une ligne pour chaque variable.

Il fonctionne avec un Tréma (ä, ö, etc)

EDIT 1:

Une autre solution est d'utiliser des com pour automatiser Photoshop. C'est bien si vous avez un couple de modèles (boutons) qui ont besoin de la modification du texte. Voici mon script en python qui pourraient vous startet.

Vous devez avoir un fichier excel avec des colonnes:
TemplateFileName, TargetFileName, TargetFormat, Texte
(c'est à dire le modèle.psd, bouton1 , gif , NiceButton) .
La première ligne de la feuille n'est pas utilisé.
La psp modèle ne devrait avoir que 1 textlayer et ne peut avoir de layergroups.

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)

OriginalL'auteur Mathias F | 2009-03-31