#javascript #decimal #adobe
Вопрос:
Я пытаюсь написать сценарий в adobe illustrator о том, как округлять десятичные дроби в начале текста. Это все, что я получил (см. Код ниже), оператор If, который имеет currAttrs.size, предназначен для округления десятичных знаков по размеру шрифта текстов, где в качестве оператора If с currAttrs.leading, если для округления десятичных знаков в начале текста скрипт работает, но что, если в начале не задано число? Что, если ведущие покажут вот так (https://i.imgur.com/92nt5Y8.png). Кто-нибудь может мне помочь?
function main()
{
if(!app.documents.length) return;
var docRef = app.activeDocument;
var allTextFrames = docRef.textFrames;
for(var i=allTextFrames.length-1;i>=0;i--)
{
var currFrame = allTextFrames[i];
if(currFrame.locked || currFrame.hidden || currFrame.layer.locked || currFrame.parent.locked || !currFrame.layer.visible || currFrame.parent.hidden) continue;
var modified = false;
for(var j=currFrame.textRanges.length-1;j>=0;j--)
{
var currRange = currFrame.textRanges[j];
var currCharAttrs = currRange.characterAttributes;
if(Math.round(currCharAttrs.size)!=currCharAttrs.size)
{
modified = true;
currCharAttrs.size = Math.round(currCharAttrs.size);
}
}
for(var j=currFrame.textRanges.length-1;j>=0;j--)
{
var currRange = currFrame.textRanges[j];
var currCharAttrs = currRange.characterAttributes;
if(Math.round(currCharAttrs.leading) != currCharAttrs.leading)
{
modified = true;
currCharAttrs.leading = Math.round(currCharAttrs.leading);
}
}
if(modified) highlightItem(currFrame);
}
}