/* author: @fabiantheblind This scipt create outlines from text aligns some objects builds a group */ // this is only prerequisite make a doc with some objects // create a doc with a size of 200 w and h var doc = app.documents.add({ documentPreferences:{ pageWidth : 200, pageHeight: 200 } }); // some colors var polycol_stroke = doc.colors.add({ name:"polycol_stroke", model:ColorModel.PROCESS, space:ColorSpace.RGB, colorValue:[10,0,10]}); var circlecol_fill = doc.colors.add({ name:"circlecol_fill", model:ColorModel.PROCESS, space:ColorSpace.RGB, colorValue:[200,255,200]}); // create a circle for styling var circle = doc.pages.item(0).ovals.add({ geometricBounds:[25,25,175,175], strokeWeight:0, fillColor: circlecol_fill }); // create a background in white var bg = doc.pages.item(0).rectangles.add({ geometricBounds:[0,0,200,200], strokeWeight:0, fillColor: doc.swatches.item(2) /* This is white */ }); // create a textframe with a content "5" var tf = doc.pages.item(0).textFrames.add({ geometricBounds:[25,25,175,175], contents: "5" }); var firstPar = tf.paragraphs.item(0); // get the first paragraph // set some properties firstPar.properties = { pointSize: 500, hyphenation : false }; tf.fit(FitOptions.FRAME_TO_CONTENT); // now fit the box onto the character /* This is the gist. - create outlines - center the object - make a group from polygon and rectangle bg - apply some styling - with the styling the circle gets visible again */ var poly = tf.createOutlines(true); // if true the original gets deleted returns an Array poly[0].strokeWeight = 5; // give him a stroke poly[0].strokeColor = polycol_stroke; // give him a stroke color // center the polygon align expects an array doc.align(poly, DistributeOptions.HORIZONTAL_CENTERS, AlignDistributeBounds.PAGE_BOUNDS); doc.align(poly, DistributeOptions.VERTICAL_CENTERS,AlignDistributeBounds.PAGE_BOUNDS); var groupArray = new Array(); // create an array for the objects we want to group groupArray.push(bg); // push the bg into it groupArray.push(poly[0]);// push the polygon into the Array var the_group = doc.pages.item(0).groups.add(groupArray); // add a group to the first page the_group.transparencySettings.blendingSettings.blendMode = BlendMode.DIFFERENCE; the_group.transparencySettings.blendingSettings.opacity = 77;