Mobile app version of vmapp.org
Login or Join
Sims5801359

: Text Treading starting at end of thread I'm using InDesing CS4. Is there a way to setup text frames to start at the end of thread and flow upwards? This is how I want it to look/work.

@Sims5801359

Posted in: #AdobeIndesign #Cs4 #Text

I'm using InDesing CS4.

Is there a way to setup text frames to start at the end of thread and flow upwards?

This is how I want it to look/work. Each box will represent a text frame on a page:



If I add a new line:



Edit:
This data gets filled in by an automated app. So re sizing, or adding frame-breaks not really an option.

10.03% popularity Vote Up Vote Down


Login to follow query

More posts by @Sims5801359

3 Comments

Sorted by latest first Latest Oldest Best

 

@Miguel516

Now, this is a problem I also once faced - and I did not find a solution back then. However, nowadays I know about scripting a bit, so I put together a quick snippet that should do what you want.

You need to save it as a .jsx file and put it in your scripts folder. Then select any of your text frames that belong to the flowing text and run the script by double clicking it in the scripts panel (under Window > Automation in InDesign CS4).

Or you could even assign the script to a keyboard shortcut, so you could execute the script with the press of a button any time you have a text frame selected.

Here it is:
#target InDesign

//Checks if a text frame was selected.
if(app.selection.length < 1 || (! app.selection[0].hasOwnProperty("parentStory")) ){
alert("ErrornSelect a text frame and try again.");
exit();
}

var story = app.selection[0].parentStory;
var tcs = story.textContainers;

var p = story.paragraphs[0].characters.length;

//Removes any empty paragraphs at the beginning in case the script has been run before.
while(p == 1){
story.paragraphs[0].remove();
p = story.paragraphs[0].characters.length;
}

//Checks if the text would fit into the text frames at all.
if(story.overflows){
alert("ErrornThe text does not fit in the textframes. Try adding or resizing some text frames.");
exit();
}

//Aligns all text to the bottom of the text frames.
for(var i = 0; i < tcs.length; i++){
tcs[i].textFramePreferences.verticalJustification = VerticalJustification.BOTTOM_ALIGN;
}

//Keeps adding empty paragraphs at the beginning until text overflows, then removes one again.
while(!story.overflows){
story.insertionPoints[0].contents = "r";
}
story.paragraphs[0].remove();


Now this is pretty basic, but should work in most situations.

It certainly could be improved to work better for you specific situation, e.g. it could go through the entire document and do all the reflowing at once, but then you would need to label the text frames that the script should perform on first.

10% popularity Vote Up Vote Down


 

@Cofer715

Text is simply content in a frame, so you need to change the behavior of the frame in this case.


Go to the top menu, choose Object > Text Frame Options...
In the Vertical Justification section, choose Align: Bottom and hit Okay


Both of your text frames can be aligned to bottom, or just the second one.

Bonus tip: If you want to control which item precedes the flow into the next frame, place your cursor after that item and head up to the Type Menu, choose Insert Break Character > Frame Break. This will force the following text into the next linked frame.

10% popularity Vote Up Vote Down


 

@Courtney577

I have 2 alternative options than using align - bottom with 2 different examples in this image (which probably shouldn't be used...).

1) The first part of the image uses a textbox with a space as the first line. I then applied a space before to the 1 of .33" (This will change depending on your text size and line-height). The second part of the image shows me adding another line to the example.

2) The alternative if you don't want to use space before is to just lower the height of the textbox. You can see this in the third part of the image.

10% popularity Vote Up Vote Down


Back to top | Use Dark Theme