Photoshop을 자동화하여 파일에서 텍스트를 삽입하십시오
-
22-08-2019 - |
문제
다중 언어 웹 사이트가 있으며 CSV-Source에서 PSD-Files에서 TextLayers를 업데이트하는 프로세스를 자동화해야합니다.
너비가 변경되어 PSP에 결함이있을 수 있지만 어쨌든 문서 내부에 텍스트를 갖는 데 많은 도움이 될 것입니다.
내 옵션은 무엇입니까?
편집하다:
Murmelschlurmel에는 작업 솔루션이 있습니다. Adobe 문서에 대한 링크는 다음과 같습니다.
CSV 파일의 형식은 그리 좋지 않습니다. 각 변수마다 열이 필요합니다. 각 변수에 대해 행을 기대할 것입니다.
Umlaut (ä, Ö 등)와 함께 작동합니다.
편집 1 :
또 다른 해결책은 COM을 사용하여 Photoshop을 자동화하는 것입니다. 변경된 텍스트가 필요한 두 개의 템플릿 (버튼)이 있으면 좋습니다. 파이썬으로 된 내 스크립트는 다음과 같습니다.
템플릿 필레나 이름, 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)
해결책
"데이터 중심 디자인"을 사용하여이를 수행 할 수 있습니다. 개념도 있습니다 데이터 중심 디자인 컴퓨터 과학에서, 그러나 내가 볼 수있는 한 이것은 Photoshop에서 단어의 사용과 관련이 없습니다.
진행 방법은 다음과 같습니다.
Photoshop에 이미지를로드하고 변수를 이미지> 변수> 정의.
그런 다음 CSV를 형식으로 변환하여 Photoshop을 읽을 수 있습니다. 나는 최고의 경험을 가지고있었습니다 탭이 묘사 된 텍스트.
마지막으로 Photoshop에 텍스트 파일을로드하십시오 이미지> 변수> 데이터 세트 Photoshop이 모든 반복을 저장하도록하십시오.
이것을 먼저 시도했을 때 Photoshop 도움말 파일이 충분한 세부 정보를 제공하지 않았다는 것을 알았습니다. 인터넷을 검색했습니다 Photoshop "데이터 세트" 좋은 튜토리얼을 찾았습니다. DigitalTutors.
다른 팁
너무 많이 나올 수도 있지만 Adobe Altercast/Grphics 서버를 사용하여 정확히 동일한 문제를 처리했습니다.
또한 단지 텍스트 GIF/JPG 이미지 인 경우 Python+PIL (Python Imaging Library)을 사용할 수 있습니다. 다음은 샘플 코드입니다 (Arial 및 Osaka Fonts가 설치된 Windows OS에서 작동합니다.)
#!/usr/bin/python
# -*- coding: utf-8 -*-
import ImageFont, ImageDraw, Image
#font = ImageFont.truetype("/usr/share/fonts/bitstream-vera/Vera.ttf", 24)
#font = ImageFont.truetype("futuratm.ttf", 18)
font = ImageFont.truetype("arial.ttf", 18)
im = Image.new("RGB", (365,20), "#fff")
draw = ImageDraw.Draw(im)
draw.text((0, 0), "Test Images", font=font, fill="#000")
im.save("TestImg_EN.gif", "GIF")
font = ImageFont.truetype("osaka.ttf", 18)
im = Image.new("RGB", (365,20), "#fff")
draw = ImageDraw.Draw(im)
draw.text((0, 0), u"テストイメージ", font=font, fill="#000")
im.save("TestImg_JP.gif", "GIF")