Skip to main content
Inspiring
February 9, 2022
Answered

Moving multiple pages via script

  • February 9, 2022
  • 2 replies
  • 1894 views

Is it possible to move mutliple pages in InDesign scripting with a single move call or do you need to move one page at a time?

Correct answer m1b

It's hard to say if it's one page at a time. The move() method belongs to Page and not Pages, so you could infer that the API moves one page at a time. But here's a simple example of moving some pages, and it is basically one call for multiple pages if you do it this way.

- Mark

var doc = app.activeDocument;
var allPages = doc.pages;
var myPages = allPages.itemByRange(4, 7);
myPages.move(LocationOptions.AT_BEGINNING);

2 replies

m1b
Community Expert
m1bCommunity ExpertCorrect answer
Community Expert
February 9, 2022

It's hard to say if it's one page at a time. The move() method belongs to Page and not Pages, so you could infer that the API moves one page at a time. But here's a simple example of moving some pages, and it is basically one call for multiple pages if you do it this way.

- Mark

var doc = app.activeDocument;
var allPages = doc.pages;
var myPages = allPages.itemByRange(4, 7);
myPages.move(LocationOptions.AT_BEGINNING);
Community Expert
February 9, 2022

Hi Mark,

Good one, I missed that. However, correct me if I am wrong this will always move a contigous set of pages to a common destination, it won't cater to use cases of moving say single pages to different locations.

-Manan

-Manan
Joel Cherney
Community Expert
Community Expert
May 16, 2025

Hi Joel,

The key is it has to maintain the text threads or it is of no use, unfortunately. It seems other scripters have struggled with this. The existing command  "Move Pages" to another document has no impact on the source file if you uncheck Delete pages, but that doesn't really matter, since I would just close the source file without saving. 
If you think just changing to Move would work with the existing parameters, I'm happy to try it, but Move is a different command and may have different variables.


Well, the .duplicate method moves all pages intact with threading intact... assuming that both documents are single-page documents in Engilsh. I can make it mess up page order if I e.g. move a spine-right Arabic document with spreads into a normal spine-left English document with spreads. But if you're not mixing languages or directions, then this script will automatically copy all of your source document apges, threading intact, into your target document. 

 

(I played around with it a bit; it turns out that you can't .move all pages from one doc to another, because that means your source doc would have zero pages, which is impossible in InDesign.) 

Community Expert
February 9, 2022