Skip to main content
Inspiring
October 18, 2020
Answered

Duplicate selected pages but not place them at the end of a document

  • October 18, 2020
  • 3 replies
  • 760 views

Is there any way to duplicate pages but place them (duplicated pages) right after each other? When I try to duplicate any pages InDesign moves them at the end of my document. It's really annoying when you have 300 pages, I have to move them always manually. I need to add some new pages in the middle of my book. Any sollution?

This topic has been closed for replies.
Correct answer Mike Bro

Hi Bryan,

Try this script to see if this what your looking for.....in the script's interface you can select a page or a range of pages and then a insertion point for those pages.

 

For info on installing scripts, read this: https://indesignsecrets.com/how-to-install-a-script-in-indesign-that-you-found-in-a-forum-or-blog-post.php

 

if (app.documents.length == 0){  
alert ("Please open a document, select an object, and try again.");  
exit();  
}  
  
  
var myDoc = app.activeDocument;  
var myPage = myDoc.layoutWindows[0].activePage;  
//var myPageId = myPage.id;  
var myDialog = app.dialogs.add({name:"Duplicate Pages",canCancel:true});  
  
  
with(myDialog.dialogColumns.add()){  
with(borderPanels.add()){  
staticTexts.add({staticLabel:"Duplicate pages from " });  
var myIntBox = integerEditboxes.add({editValue:1, smallNudge:1, largeNudge:10});  
staticTexts.add({staticLabel:" to"});  
var myIntBox2 = integerEditboxes.add({editValue:1, smallNudge:1, largeNudge:10});  
}  
with(borderPanels.add()){  
staticTexts.add({staticLabel:"Insert after  " });  
var myIntBox3 = integerEditboxes.add({editValue:1, smallNudge:1, largeNudge:10});  
}  
}  
        
var myResult = myDialog.show();  
var pages = app.activeDocument.pages;  
 
 if(myResult == true){
  
var myNumber = myIntBox.editValue;  
var myNumber2 = myIntBox2.editValue;  
var myNumber3 = myIntBox3.editValue;  
  
if (myNumber < 1 ) {  
alert(myNumber + " is invalid number.");  
exit();  
}  
if (myNumber2 < 1 ) {  
alert(myNumber2 + " is invalid number.");  
exit();  
}  
  
if (!(pages.item(myNumber-1).isValid)) {  
alert("Page number " + myNumber + " doesn't exist");  
exit();  
}  
  
  
if (!(pages.item(myNumber2-1).isValid)) {  
alert("Page number " + myNumber2 + " doesn't exist");  
exit();  
}  
  
  
if (!(pages.item(myNumber3-1).isValid)) {  
alert("Page number " + myNumber3+ " doesn't exist");  
exit();  
}  
  
  
  
var i=myNumber;  
var j=myNumber2;  
var b=0;  
  
  
if (myNumber3==0){  
for (i; i <= myNumber2; i++) {  
pages.item(i-1+b).duplicate(LocationOptions.BEFORE,myDoc.pages.item(0+b));  
b++;  
}  
}  
  
if(myNumber3>=myNumber2){  
for (i; i <= myNumber2; i++) {  
pages.item(i-1).duplicate(LocationOptions.AFTER, myDoc.pages.item(myNumber3-1+b));  
b++;  
}  
}  
  
  
if ((myNumber3<=myNumber2) & (myNumber3!=0)){  
for (i; i <= myNumber2; i++) {  
pages.item(i-1+b).duplicate(LocationOptions.AFTER, myDoc.pages.item(myNumber3-1+b));  
b++;  
}  
}  
  
if((myNumber2 < myNumber) &(myNumber<=myNumber3)){  
for (j; j <= myNumber; j++) {  
pages.item(j-1).duplicate(LocationOptions.AFTER, myDoc.pages.item(myNumber3-1));  
}  
}  
  
if((myNumber2 < myNumber) &(myNumber>myNumber3)&(myNumber3!=0)){  
for (j; j <= myNumber; j++) {  
pages.item(j-1+b).duplicate(LocationOptions.AFTER, myDoc.pages.item(myNumber3-1));  
b++;  
}  
}  
  
if((myNumber2 < myNumber) &(myNumber3==0)){  
for (j; j <= myNumber; j++) {  
pages.item(j-1+b).duplicate(LocationOptions.BEFORE, myDoc.pages.item(0));  
b++;  
}
}
}  
  
myDialog.destroy(); 

 

Regards,

Mike

 

3 replies

Participant
October 29, 2024

I had the same issue. After trying different combinations holding Option + Command (Alt + Ctrl on PC?) while dragging did the trick for me.

Mike BroCorrect answer
Legend
October 18, 2020

Hi Bryan,

Try this script to see if this what your looking for.....in the script's interface you can select a page or a range of pages and then a insertion point for those pages.

 

For info on installing scripts, read this: https://indesignsecrets.com/how-to-install-a-script-in-indesign-that-you-found-in-a-forum-or-blog-post.php

 

if (app.documents.length == 0){  
alert ("Please open a document, select an object, and try again.");  
exit();  
}  
  
  
var myDoc = app.activeDocument;  
var myPage = myDoc.layoutWindows[0].activePage;  
//var myPageId = myPage.id;  
var myDialog = app.dialogs.add({name:"Duplicate Pages",canCancel:true});  
  
  
with(myDialog.dialogColumns.add()){  
with(borderPanels.add()){  
staticTexts.add({staticLabel:"Duplicate pages from " });  
var myIntBox = integerEditboxes.add({editValue:1, smallNudge:1, largeNudge:10});  
staticTexts.add({staticLabel:" to"});  
var myIntBox2 = integerEditboxes.add({editValue:1, smallNudge:1, largeNudge:10});  
}  
with(borderPanels.add()){  
staticTexts.add({staticLabel:"Insert after  " });  
var myIntBox3 = integerEditboxes.add({editValue:1, smallNudge:1, largeNudge:10});  
}  
}  
        
var myResult = myDialog.show();  
var pages = app.activeDocument.pages;  
 
 if(myResult == true){
  
var myNumber = myIntBox.editValue;  
var myNumber2 = myIntBox2.editValue;  
var myNumber3 = myIntBox3.editValue;  
  
if (myNumber < 1 ) {  
alert(myNumber + " is invalid number.");  
exit();  
}  
if (myNumber2 < 1 ) {  
alert(myNumber2 + " is invalid number.");  
exit();  
}  
  
if (!(pages.item(myNumber-1).isValid)) {  
alert("Page number " + myNumber + " doesn't exist");  
exit();  
}  
  
  
if (!(pages.item(myNumber2-1).isValid)) {  
alert("Page number " + myNumber2 + " doesn't exist");  
exit();  
}  
  
  
if (!(pages.item(myNumber3-1).isValid)) {  
alert("Page number " + myNumber3+ " doesn't exist");  
exit();  
}  
  
  
  
var i=myNumber;  
var j=myNumber2;  
var b=0;  
  
  
if (myNumber3==0){  
for (i; i <= myNumber2; i++) {  
pages.item(i-1+b).duplicate(LocationOptions.BEFORE,myDoc.pages.item(0+b));  
b++;  
}  
}  
  
if(myNumber3>=myNumber2){  
for (i; i <= myNumber2; i++) {  
pages.item(i-1).duplicate(LocationOptions.AFTER, myDoc.pages.item(myNumber3-1+b));  
b++;  
}  
}  
  
  
if ((myNumber3<=myNumber2) & (myNumber3!=0)){  
for (i; i <= myNumber2; i++) {  
pages.item(i-1+b).duplicate(LocationOptions.AFTER, myDoc.pages.item(myNumber3-1+b));  
b++;  
}  
}  
  
if((myNumber2 < myNumber) &(myNumber<=myNumber3)){  
for (j; j <= myNumber; j++) {  
pages.item(j-1).duplicate(LocationOptions.AFTER, myDoc.pages.item(myNumber3-1));  
}  
}  
  
if((myNumber2 < myNumber) &(myNumber>myNumber3)&(myNumber3!=0)){  
for (j; j <= myNumber; j++) {  
pages.item(j-1+b).duplicate(LocationOptions.AFTER, myDoc.pages.item(myNumber3-1));  
b++;  
}  
}  
  
if((myNumber2 < myNumber) &(myNumber3==0)){  
for (j; j <= myNumber; j++) {  
pages.item(j-1+b).duplicate(LocationOptions.BEFORE, myDoc.pages.item(0));  
b++;  
}
}
}  
  
myDialog.destroy(); 

 

Regards,

Mike

 

Dave Creamer of IDEAS
Community Expert
Community Expert
October 18, 2020

Try selecting the spread(s) and Alt or Option drag the spreads to where you want them.

David Creamer: Community Expert (ACI and ACE 1995-2023)