当前位置:  开发笔记 > 编程语言 > 正文

自动化Photoshop从文件中插入文本

如何解决《自动化Photoshop从文件中插入文本》经验,为你挑选了1个好方法。

我有一个多语言网站,需要自动更新来自csv-source的psd文件中的文本层的过程.

我知道psp中可能存在毛刺,因为宽度发生了变化,但无论如何,在文档中包含文本会有很多帮助.

我有什么选择?

编辑:

Murmelschlurmel有一个可行的解决方案.以下是Adobe文档的链接.

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

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)

小智.. 22

您可以使用"数据驱动设计"来执行此操作.计算机科学中也存在数据驱动设计的概念,但据我所知,这与Photoshop中单词的使用无关.

以下是如何进行:

在Photoshop中加载图像并使用图像>变量>定义来定义变量.

然后将您的csv转换为Photoshop可以读取的格式.我有使用制表符分隔文本的最佳体验.

最后在Photoshop中使用图像>变量>数据集加载文本文件,然后让Photoshop保存所有迭代.

当我第一次尝试这个时,我发现Photoshop帮助文件没有提供足够的细节.我在互联网上搜索了Photoshop的"数据集",并找到了一些很好的教程,例如这个来自数字导师.



1> 小智..:

您可以使用"数据驱动设计"来执行此操作.计算机科学中也存在数据驱动设计的概念,但据我所知,这与Photoshop中单词的使用无关.

以下是如何进行:

在Photoshop中加载图像并使用图像>变量>定义来定义变量.

然后将您的csv转换为Photoshop可以读取的格式.我有使用制表符分隔文本的最佳体验.

最后在Photoshop中使用图像>变量>数据集加载文本文件,然后让Photoshop保存所有迭代.

当我第一次尝试这个时,我发现Photoshop帮助文件没有提供足够的细节.我在互联网上搜索了Photoshop的"数据集",并找到了一些很好的教程,例如这个来自数字导师.

推荐阅读
谢谢巷议
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有