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!");
}
Photoshopはポストスクリプトフォント名(メモリが使用されている場合)を使用する傾向があります。これは問題を複雑にします:) –