Text frame
Auto-grow text frame
This script makes the 1st text frame in the active document to grow vertically: from top to bottom.
var myDoc = app.activeDocument; var myTF = myDoc.textFrames[0]; var myViewPr = myDoc.viewPreferences; var myHM = myViewPr.horizontalMeasurementUnits; var myVM = myViewPr.verticalMeasurementUnits; myViewPr.horizontalMeasurementUnits = MeasurementUnits.millimeters; myViewPr.verticalMeasurementUnits = MeasurementUnits.millimeters; while (myTF.overflows){ var myBounds = myTF.geometricBounds; myBounds[2] += 1; myTF.geometricBounds = myBounds; } myViewPr.horizontalMeasurementUnits = myHM; myViewPr.verticalMeasurementUnits = myVM;
Changing myBounds[2]+= ; to myBounds[3]+= 1; makes it grow horizontally from left to right. BTW, unlike fit() method, this approach works for multicolumn text frames.
See also: Fit Text Frame to Content (supporting multicolumn).
Get text column number
sel = app.selection[0]; frame = sel.parentTextFrames[0]; $.writeln (frame.insertionPoints.itemByRange (0, sel.index).textColumns.length-1);