私は多言語のウェブサイトを持っており、CSVソースからpsdファイルのテキストレイヤーを更新するプロセスを自動化する必要があります。Photoshopを自動化してファイルからテキストを挿入します
私は、幅が変更されているためにPSPに不具合があるかもしれないが、とにかくドキュメント内にテキストを入れることが多くなると分かっています。
私のオプションは何ですか?
編集:
Murmelschlurmelには有効な解決策があります。ここに、Adobeのドキュメントへのリンクがあります。
CSVファイルのフォーマットはとても素敵ではありません:あなたは、各変数の列が必要です。私は各変数の行を期待します。
これは、ウムラウト(ä、öなど)
EDIT 1で動作します:別の解決策は、Photoshopのを自動化するために、COMを使用することです
。変更されたテキストが必要なテンプレート(ボタン)が2つある場合はうれしいことです。ここで私はあなたのスタートセットを得るかもしれないPythonのスクリプトです。
TemplateFileName、TargetFileName、TargetFormat、Text (つまりtemplate.psd、button1、gif、NiceButton)の列を持つExcelファイルが必要です。 シートの最初の行は使用されません。 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)
この動画は役に立ちました: http://www.youtube.com/watch?v=i9Ms34nYRFI –
データ駆動型のチュートリアル:http://roderickvella.wordpress.com/2014/12/30/photoshop-data -driven-graphics / – Vince