如何通过 javascript 缩小文本以适合 Illustrator 中的给定矩形?
How to shrink a text to fit in a given rectangle in Illustrator via javascript?
我在 Illustrator 中通过 javascript 创建了一个 areaText,并希望在给定的框中以尽可能大的尺寸显示文本。怎么做?
您可以创建一个链接到初始 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;
}
我在 Illustrator 中通过 javascript 创建了一个 areaText,并希望在给定的框中以尽可能大的尺寸显示文本。怎么做?
您可以创建一个链接到初始 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;
}