: 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.
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.
More posts by @Sims5801359
3 Comments
Sorted by latest first Latest Oldest Best
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.
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.
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.
Terms of Use Create Support ticket Your support tickets Stock Market News! © vmapp.org2024 All Rights reserved.