2015-01-13 3 views
2

Photoshop 스크립트를 사용하여 PSD에서 다른 텍스트를 배열에 배치하려고합니다. 문제는 첫 번째 텍스트가 한 줄에 들어가는 지 여부가 명확하지 않을 수 있다는 것입니다. 첫 번째 줄 다음에 N 픽셀 뒤에 두 번째 텍스트를 배치해야하기 때문입니다. 그리고 제목에 2 줄이 있다면 나는 망했다.photoshop script place one text after another

동적 단락 높이를 사용하거나 단락에서 줄 수를 계산할 수 있습니까? 또는이 문제를 어떻게 해결할 수 있습니까?

function createTexts() { 
    createText(250, 100, 110, titles[count_psd-1], 1); 
    createText(200, 50, 250, descriptions[count_psd-1], 0); 

    saveImage(); 
} 

function createText(h, fontSize, hPosition, content, light) { 
    var doc = app.activeDocument; 
    var TextLayer = doc.artLayers.add(); 
    TextLayer.kind = LayerKind.TEXT; 
    var txtRef = TextLayer.textItem; 
    txtRef.kind = TextType.PARAGRAPHTEXT; 
    txtRef.antiAliasMethod = AntiAlias.SMOOTH; 
    txtRef.width = 1050; 
    txtRef.height = h; 
    if (lang==0) { 
     if (light==1){ 
      txtRef.font = "HelveticaNeue-UltraLight"; 
     } else { 
      txtRef.font = "HelveticaNeue"; 
     } 
    } else { 
     txtRef.font = "MicrosoftSansSerif"; 
    } 
    txtRef.contents = content; 
    txtRef.size = fontSize; 
    var textPosition = [75,hPosition]; 
    txtRef.position = textPosition; 
} 

감사 :

여기 내 코드입니다!

+0

포토샵 스크립트에 대해서는 아무 것도 모르지만, 이것을 시도했다면 시도 할 첫 번째 아이디어는 'txtRef.height = h;'로 높이를 수동으로 설정하지 않고 콘텐츠가 자동으로 높이를 설정하는지 확인하는 것입니다. 덧붙였다. 시도해 볼 가치가 있을까요? – musefan

+0

그래, 나는 이것을 시도했다. 그러나 불행히도 단락의 높이를 설정하지 않으면 0으로 간주되며 텍스트는 표시되지 않습니다. 팁을 가져 주셔서 감사합니다! – Denis

답변

0

필자는 이전에이 프로그램을 실행했으며 텍스트를 표시하고 텍스트 레이어의 복사본을 래스터 화하는 데 필요한 것보다 훨씬 큰 단락을 설정했습니다. 그런 다음 래스터 화 된 레이어에서 필요한 높이를 계산하여 텍스트 레이어에 다시 적용했습니다. 마지막으로 래스터 화 된 사본을 삭제했습니다. 고통스러운 해결 방법이지만 작동했습니다.