Mat*_*s F 7 photoshop localization
我有一个多语言网站,需要自动更新来自csv-source的psd文件中的文本层的过程.
我知道psp中可能存在毛刺,因为宽度发生了变化,但无论如何,在文档中包含文本会有很多帮助.
我有什么选择?
编辑:
Murmelschlurmel有一个可行的解决方案.以下是Adobe文档的链接.
csv文件的格式不太好:每个变量都需要一个列.我希望每个变量都有一行.
它适用于Umlaut(ä,ö等)
编辑1:
另一种解决方案是使用com来自动化Photoshop.如果您有一些需要更改文本的模板(按钮),那太好了.这是我在python中的脚本,可能会让你开始.
您需要一个包含列的excel文件:TemplateFileName,TargetFileName,TargetFormat,Text(即template.psd,button1,gif,NiceButton).不使用工作表的第一行.psp模板应该只有1个文本层,不能有图层组.
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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
30248 次 |
| 最近记录: |