6 Replies Latest reply on Jul 20, 2016 6:15 AM by Peter Spier

    How to: Unlinking or Unthread Text Boxes in InDesign

    Ala'a Assamawy

      Hello,

      I'm working on 300 pages report, how can I break the thread between chapters? please see the figure blow:
      Untitled-2.jpg

       

      Note: I'm using InDesign CC 2015 on Mac

      Thank you,

        • 1. Re: How to: Unlinking or Unthread Text Boxes in InDesign
          George_Salnik Adobe Community Professional

          What the problem with to unthread and cut-paste overset to next chapter frame?

          You can also use splitstory.jsx (default script in indesign), but than will need to recreate needed threads.

          • 2. Re: How to: Unlinking or Unthread Text Boxes in InDesign
            Ala'a Assamawy Level 1

            Thank you GeorgeS,
            Is there another way to do that.. the document I'm working on is huge, "unthread" and "cut-paste" will take a lot of time.

            • 3. Re: How to: Unlinking or Unthread Text Boxes in InDesign
              Daniel Flavin Level 4

              Do you actually need to split the threads or is your goal to force a chapter start on a new page?

              (Insert Break Character - Page Break - Odd Page Break - Even Page Break)

              1 person found this helpful
              • 4. Re: How to: Unlinking or Unthread Text Boxes in InDesign
                Obi-wan Kenobi Adobe Community Professional

                Hi George,

                 

                StorySplitter_AdiRavid.jsx

                 

                Capture d’écran 2016-07-20 à 15.05.20.png

                • 5. Re: How to: Unlinking or Unthread Text Boxes in InDesign
                  Obi-wan Kenobi Adobe Community Professional
                  /*
                  ------------------------------------------------------------------------------------------ ------------------------
                  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.
                  ------------------------------------------------------------------------------------------ ------------------------
                  */
                  var myScriptVer = "3.0";
                  
                  
                  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({staticLabel:"Split All Frames", checkedState:true});
                                                                                                  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] == myStory.textFrames[f]){
                                                                                        var myTextFrame = f;
                                                                              }
                                                                    }
                                                                    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 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();
                  
                                      }
                            }
                  }
                  

                   

                  When a script is greatly written, it's for eternity! It works perfectly with ID CC!

                   

                  Thanks a lot Adi! 

                  1 person found this helpful
                  • 6. Re: How to: Unlinking or Unthread Text Boxes in InDesign
                    Peter Spier Most Valuable Participant (Moderator)

                    I like each chapter to be its own story, myself. It prevents unintentional page count changes during editing while warning you about overset text. Dave Saunders wrote a script to divide a story at any given frame which will work well for this: JavaScripting InDesign: Script of the Day -- Divide Story into Two

                     

                    Not sure how many versions newer than CS it will run in natively, but if it fails, it should run if you put it in a subfolder of the scripts panel folder named Version 3.0 Scripts (the name is case sensitive).