2016-12-05 3 views
1

私はそれを行うために必要なものを処理し、 "TypeError:undefined is not object ...を取得し続けるスクリプトを修正しようとしていますが、コピーしましおよびほとんどすべてを貼り付けた。アドビガラモンにフォントを設定するなどの問題のあるライン。Photoshop JSはフォントを指定します

スクリプトのリスナーが、私はそれを得るためにJSは十分に知っていない、私が関係していると思うこれらのラインを持っていますが。

var idfontPostScriptName = stringIDToTypeID("fontPostScriptName"); 
    desc22.putString(idfontPostScriptName, """AGaramondPro-Regular"""); 
    var idFntN = charIDToTypeID("FntN"); 
    desc22.putString(idFntN, """Adobe Garamond Pro"""); 
    var idFntS = charIDToTypeID("FntS"); 
    desc22.putString(idFntS, """Regular"""); 

スクリプトの外観は

// this script is a variation of the script addTimeStamp.js that is installed with PH7 

    //OPENED document has size 
    if (documents.length > 0) 
    { 
var originalDialogMode = app.displayDialogs; 
app.displayDialogs = DialogModes.ERROR; 
var originalRulerUnits = preferences.rulerUnits; 
preferences.rulerUnits = Units.PIXELS; 

try 
{ 
    var docRef = activeDocument; 

    // Now create a text layer at the front 
    var myLayerRef = docRef.artLayers.add(); 
    myLayerRef.kind = LayerKind.TEXT; 
    myLayerRef.name = "Filename"; 

    var myTextRef = myLayerRef.textItem; 

    // strip the extension off 
    var fileNameNoExtension = docRef.name; 
    fileNameNoExtension = fileNameNoExtension.split("."); 
    if (fileNameNoExtension.length > 1) { 
     fileNameNoExtension.length--; 
    } 
    fileNameNoExtension = fileNameNoExtension.join("."); 

    myTextRef.contents = fileNameNoExtension; 



    // off set the text to be in the middle 
    myTextRef.position = new Array(docRef.width/2, docRef.height/2); 
    myTextRef.size = 135; 
    myTextRef.textItem.font = 'AGaramondPro-Regular'; 
} 
catch(e) 
{ 
    // An error occurred. Restore ruler units, then propagate the error back 
    // to the user 
    preferences.rulerUnits = originalRulerUnits; 
    app.displayDialogs = originalDialogMode; 
    throw e; 
} 

// Everything went Ok. Restore ruler units 
preferences.rulerUnits = originalRulerUnits; 
app.displayDialogs = originalDialogMode; 
    } 
    else 
    { 
alert("You must have a document open to add the filename!"); 
    } 

答えて

1

ああ、私の地獄。ちょうど私自身の質問に再び答えました。申し訳ありません。

myTextRef.font = 'AGaramondPro-Regular'; 
+0

Photoshopはポストスクリプトフォント名(メモリが使用されている場合)を使用する傾向があります。これは問題を複雑にします:) –

関連する問題