Copy link to clipboard
Copied
Hello all,
I have a 40 page booklet, which is mostly one long blob of threaded text with images interspersed, text styles, and embedded tables ... nothing too complicated. The client wants me to re-order the pages in a major way. I discovered to my horror that I can't just move the pages around, since the text is all threaded! What are my options? I tried SplitStory but that seems a bit drastic.
I appreciate any help!!!
Thanks,
Laura S.
There is an alternate script that allows stories to be split accordingly:
that script can be found here: Please provide the Story Splitter script by Adi Ravid?
I have to do this on a yearly basis during school diary season. Each year, the schools update their preliminary pages in a diary and - while threaded text is a way that I would normally set a book - I'm guaranteed that the school will chop and change all of these pages, requiring me to use the above script to split the stories in certain s
...Copy link to clipboard
Copied
Copy link to clipboard
Copied
Hi Laura,
you can remove the text frames of the threaded story on the pages you want to rearrange and after that is done thread the story again to new text frames on the rearranged pages. Or you can cut and paste in place the text frames and remove their contents before rearranging the pages and later thread all text frames in the new order.
Splitting the story is not appropriate because that would mean that text is not removed or moved to the right pages.
Regards,
Uwe
Copy link to clipboard
Copied
There is an alternate script that allows stories to be split accordingly:
that script can be found here: Please provide the Story Splitter script by Adi Ravid?
I have to do this on a yearly basis during school diary season. Each year, the schools update their preliminary pages in a diary and - while threaded text is a way that I would normally set a book - I'm guaranteed that the school will chop and change all of these pages, requiring me to use the above script to split the stories in certain spots.
Copy link to clipboard
Copied
Hi Colin,
yes, the script can be useful if you have a consecutive range of frames on a consecutive range of pages you want to split.
But in this case it is not useful, because the contents of the frames should not be rearranged with the pages.
Regards,
Uwe
Copy link to clipboard
Copied
There's a difference of opinion here, or perhaps I'm misunderstanding the brief. I'm actually suggesting to a combination of both splitting the text threads AND moving the pages around. In my mind, it should be fine to break the threads, move the pages around the the desired page locations and then re-thread them. Using the script I mentioned means that not all threads need to break, only where pages need to move, rather than every text frame.
Copy link to clipboard
Copied
Hi Colin,
unfortunately Laura, our OP, never came back to comment the suggestions made by Vladan, you and me.
So I'm still unsure how the result of moving pages around should be. Some screenshots from her document could have helped showing the threaded story and a clear description what pages should be reordered.
Regards,
Uwe
Copy link to clipboard
Copied
I dont see the frames being rearranged, i see the order in the layers keeps the same?
Copy link to clipboard
Copied
I got an error when using split all. Seems there was a small issue with line 165 and 172. I fixed it by changing
/*
---------------------------------------------------------------------- --------------------------------------------
StorySplitter
---------------------------------------------------------------------- --------------------------------------------
An InDesign CS/CS2/CS3 JavaScript by FourAces
© The Final Touch 2006
Version 3.0.0
Splits the selected Story to separate Text Frames, while maintaining their contents.
---------------------------------------------------------------------- --------------------------------------------
See https://community.adobe.com/t5/indesign/please-provide-the-story-splitter-script-by-adi-ravid/td-p/5657620
Fixed #165 > changed myTextFrames.duplicate(); to myTextFrames[i].duplicate(); as well as on #172
V 3.0.1 - 20-12-2019
*/
var myScriptVer = "3.0.1";
if (app.documents.length != 0) {
var mySelection = app.activeDocument.selection;
if (mySelection.length != 0) {
myObjectType = mySelection[0].constructor.name;
if (myObjectType == "TextFrame") {
//The Interface Dialog
var myDialog = app.dialogs.add({
name: "Story Splitter v" + myScriptVer
});
with (myDialog) {
with (dialogColumns.add()) {
with (dialogRows.add()) {
with (borderPanels.add()) {
var mySplitOptions = radiobuttonGroups.add();
with (mySplitOptions) {
radiobuttonControls.add({checkedState: true, staticLabel: "Split All Frames"});
radiobuttonControls.add({staticLabel: "Split Before Selected Frame"});
radiobuttonControls.add({staticLabel: "Split After Selected Frame"});
}
}
}
with (dialogRows.add()) {
staticTexts.add({staticLabel: "© The Final Touch"});
}
}
}
var myResult = myDialog.show({name: "SplitOptions"});
if (myResult == true) {
var myStory = mySelection[0].parentStory;
if (app.version.split(".")[0] >= 5) {
var myTextFrames = myStory.textContainers;
} else {
var myTextFrames = myStory.textFrames;
}
var myStoryFramesCount = myTextFrames.length;
if (myStoryFramesCount > 1) {
for (f = 0; f < myStoryFramesCount; f++) {
if (mySelection[0] == myTextFrames) {
var myTextFrame = f;
}
}
// alert(mySelection[0]);
switch (mySplitOptions.selectedButton) {
case 0:
mySplitAll();
break;
case 1:
mySplitBefore();
break;
case 2:
mySplitAfter();
break;
}
} else {
alert("Are You Kidding Me?!\nThe Story you selected has only ONE text frame.");
}
}
} else {
alert("Wrong Selection\nYou selected the wrong type of object. Please select a Text Frame.");
}
} else {
alert("No Selection Made.\nPlease select a Story to split.");
}
} else {
alert("No Active Document Found.\nPlease open an InDesign document and select a Story to split.");
}
//-------------------------------------------------------------------- --------
function mySplitAll() {
for (i = 0; i < myStoryFramesCount; i++) {
myTextFrames[i].duplicate();
}
for (i = 0; i < myStoryFramesCount; i++) {
if (app.version.split(".")[0] >= 5) {
myTextFrames[i].remove();
} else {
myTextFrames[0].remove();
}
}
}
function mySplitBefore() {
if (mySelection[0].previousTextFrame == null) {
alert("Unable to break thread.\nThe selected Text Frame is the FIRST text frame of the thread.");
} else {
var myBfBreakFrame = mySelection[0].previousTextFrame;
var myAfBreakFrame = mySelection[0];
var myBreakStory = myBfBreakFrame.parentStory;
mySelection[0].previousTextFrame = null;
if (myBfBreakFrame.overflows == true) {
var myOversetText = myBreakStory.texts.itemByRange(myBfBreakFrame.insertionPoints[-1], myBreakStory.insertionPoints[-1]);
myOversetText.select();
app.cut();
app.select(myAfBreakFrame.insertionPoints[0]);
app.paste();
}
}
}
function mySplitAfter() {
if (mySelection[0].nextTextFrame == null) {
alert("Unable Break Thread.\nThe selected Text Frame is the LAST text frame of the thread.");
} else {
var myBfBreakFrame = mySelection[0];
var myAfBreakFrame = mySelection[0].nextTextFrame;
var myBreakStory = myBfBreakFrame.parentStory;
mySelection[0].nextTextFrame = null;
if (myBfBreakFrame.overflows == true) {
var myOversetText = myBreakStory.texts.itemByRange(myBfBreakFrame.insertionPoints[-1], myBreakStory.insertionPoints[-1]);
myOversetText.select();
app.cut();
app.select(myAfBreakFrame.insertionPoints[0]);
app.paste();
}
}
}
Copy link to clipboard
Copied
Hi all,
Sorry, my bad, for disappearing from the conversation. I used StorySplitter, which worked like a charm, did everything I wanted it to do, and it was easy to install (even for a non-script user ... I've never used any kind of InDesign script at all and hardly a script anywhere else either) and intuitive and bug-free. Basically it split the thread in all the right places (exactly where I told it to), and then I could just re-arrange the pages as needed. I didn't need the text to be re-threaded, so I can't say anything about that ... but this script was exactly what I was looking for. Many thanks to Colin for suggesting it!
Laura S.
Copy link to clipboard
Copied
I've found another solution to this intolerably difficult problem (preserving threads when moving pages - why???). Make a new document and use the Move Pages feature to place the pages in the correct order within the new document. Threads among consecutive pages from your original document are preserved. You just have to re-thread the sections that you moved.
Copy link to clipboard
Copied
Hi Laura and all others,
there is also another script you can try in case the script posted above would fail.
Written by Timothy Ariel Walden and available with InDesign 2020 and 2021 in the Community section of the Scripts panel of InDesign: BreakTextThread.jsx. This script is also working with previous versions of InDesign. Be aware that you need to see into issues that could come up if you use endnotes or footnotes; this also refers to the Story Splitter script.
Read about breakTextThread,jsx and its usage in full detail here:
Break Text Thread: A Free InDesign Script
by Ariel, January 28, 2020
https://www.id-extras.com/break-text-thread/
Regards,
Uwe Laubender
( ACP )
Copy link to clipboard
Copied