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.
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
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser "Data Driven Design" pour ce faire. Il y a aussi une notion de piloté par les données de conception en informatique, mais aussi loin que je peux voir, ce n'est pas non liés à l'utilisation de la parole dans Photoshop.
Voici comment procéder:
Charger votre image dans Photoshop et de les définir vos variables avec Image > Variable > Définir.
Puis convertir un fichier csv en un format Photoshop peut lire. J'ai eu les meilleures expériences avec onglet delimted texte.
Enfin charger le fichier texte dans Photoshop avec Images > Variables d' > Ensemble de Données et laissez Photoshop enregistrer toutes les itérations.
Quand j'ai essayé cette première, j'ai trouvé que le fichier d'aide de Photoshop ne pas fournir suffisamment de détails. J'ai cherché sur Internet pour photoshop "ensemble de données" et a trouvé quelques bons tutoriels, par exemple, de celui de la digitaltutors.
tutoriel sur les données driven design: roderickvella.wordpress.com/2014/12/30/...
OriginalL'auteur Murmelschlurmel
Il peut être peu trop, mais j'ai utilisé Adobe AlterCast/Graphiques serveur pour gérer exactement le même problème.
Aussi si c'est juste du Texte, GIF, JPG image, vous pouvez utiliser Python+PIL (Python Imaging Library).
Voici un exemple de code (qui fonctionne sur l'OS de Windows avec une police Arial et Osaka polices installées.)
OriginalL'auteur