Как уменьшить текст, чтобы поместиться в данный прямоугольник в Illustrator через JavaScript? - PullRequest
0 голосов
/ 28 ноября 2018

Я создаю areaText с помощью javascript в Illustrator и хочу разместить текст в указанном поле в максимально возможном размере.Как это сделать?

1 Ответ

0 голосов
/ 28 ноября 2018

Вы можете создать область переполнения, связанную с начальным areaText, и уменьшать размер до тех пор, пока в этой области не останется текста.

Пример:

var docRef = documents.add(null,1080,1080);
var piRef = activeDocument.pathItems;
var textRefs = activeDocument.textFrames;

var pathRef = piRef.add();

// target text area
var textArea = piRef.rectangle(940, 140, 800, 600);
var text = textRefs.areaText(textArea);

// maximum Font size, use something big to shrink down from
var maxFontSize = 200

text.textRange.characterAttributes.size = maxFontSize;

// create an overflow box
var overflowArea = piRef.rectangle(940, 140, 800, 600);
var overflowText = textRefs.areaText(overflowArea, TextOrientation.HORIZONTAL, text);

text.contents = "This text should fit in the box.";

// shrink text size until the overflow box is empty.
var fontSize = maxFontSize;
while (overflowText.words.length > 0 && fontSize > 0)
{
    text.textRange.characterAttributes.size = --fontSize;
    overflowText.textRange.characterAttributes.size = --fontSize;
}
...