reordering pages with threaded text

Community Beginner ,
Jul 17, 2018 Jul 17, 2018

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.

Views

1.5K

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines

correct answers 1 Correct Answer

Adobe Community Professional , Jul 18, 2018 Jul 18, 2018
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...

Likes

Translate

Translate
Adobe Community Professional ,
Jul 17, 2018 Jul 17, 2018

Copy link to clipboard

Copied

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Community Professional ,
Jul 18, 2018 Jul 18, 2018

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

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Community Professional ,
Jul 18, 2018 Jul 18, 2018

Copy link to clipboard

Copied

There is an alternate script that allows stories to be split accordingly:

Screen Shot 2018-07-18 at 23.52.27.png

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.

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Community Professional ,
Jul 18, 2018 Jul 18, 2018

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

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Community Professional ,
Jul 18, 2018 Jul 18, 2018

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.

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Community Professional ,
Aug 02, 2018 Aug 02, 2018

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

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Enthusiast ,
Dec 20, 2019 Dec 20, 2019

Copy link to clipboard

Copied

I dont see the frames being rearranged, i see the order in the layers keeps the same?

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Enthusiast ,
Dec 20, 2019 Dec 20, 2019

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

 

myTextFrames.duplicate(); >  myTextFrames[i].duplicate();
and further
myTextFrames.remove(); >  myTextFrames[i].remove();
 
Here's the adjusted code
 

 

/*
---------------------------------------------------------------------- --------------------------------------------
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();
        }
    }
}

 

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Aug 02, 2018 Aug 02, 2018

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.

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Jul 08, 2021 Jul 08, 2021

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.  

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Community Professional ,
Jul 12, 2021 Jul 12, 2021

Copy link to clipboard

Copied

LATEST

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 )

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines