Ich habe eine mehrsprachige Website und muss den Prozess der Aktualisierung von Textlayern in PSD-Dateien von einer CSV-Quelle automatisieren.Photoshop automatisieren, um Text aus Datei einzufügen
Ich weiß, dass es in der PSP wegen geänderter Breiten Störungen geben könnte, aber es würde sowieso viel helfen, den Text in den Dokumenten zu haben.
Was sind meine Optionen?
EDIT:
Murmelschlurmel hat eine funktionierende Lösung. Hier ist der Link zur Adobe-Dokumentation.
Das Format der CSV-Datei ist nicht so schön: Sie müssen eine Spalte für jede Variable. Ich würde eine Reihe für jede Variable erwarten.
Es mit Umlaut arbeitet (ä, ö etc)
EDIT 1:
Eine andere Lösung ist com zu verwenden Photoshop zu automatisieren. Das ist nett, wenn Sie ein paar Vorlagen (Schaltflächen) haben, die geänderten Text benötigen. Hier ist mein Skript in Python, mit dem Sie beginnen können.
Sie müssen sich mit Spalten einer Excel-Datei haben: TemplateFileName, TargetFileName, Targetformat, Text (dh template.psd, button1, gif, NiceButton). Die erste Zeile des Blattes wird nicht verwendet. Die PSP-Vorlage sollte nur 1 Textlayer haben und keine Layergruppen haben.
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)
Ich fand dieses Video auch hilfreich: http://www.youtube.com/watch?v=i9Ms34nYRFI –
Tutorial über datengesteuertes Design: http://roderickvella.wordpress.com/2014/12/30/photoshop-data -gesteuerte Grafik / – Vince