Skip to main content
NexusFred
Inspiring
February 19, 2024
Answered

Move group to the left or to right base on page number

  • February 19, 2024
  • 1 reply
  • 309 views
Hello, I need to move all the content on even pages by 2 mm to the right and all the content on odd pages by 2 mm to the left. To do this, I am thinking of first creating a group of all the elements per page and then moving this group. I have a solution (thanks to @rob day ) to group all the items but now how can I move the group in the right direction?
 
Code by @rob day to group all items on each page.

 

spreads = app.documents[0].spreads.everyItem().getElements();
for (i = 0; i < spreads.length; i++) {
	if (spreads[i].pageItems.length > 1) {
		spreads[i].pageItems.everyItem().locked = false;
		spreads[i].groups.add (spreads[i].pageItems);
	}
}

 

 

This topic has been closed for replies.
Correct answer rob day

Hi @NexusFred , If you want to move the page items via the script, you don’t have to group anything. This would move page items (not masterpage items) 3mm away from the spine:

 

var x = 3;
app.scriptPreferences.measurementUnit = MeasurementUnits.MILLIMETERS;
var spreads = app.documents[0].spreads.everyItem().getElements();
var p;
for (i = 0; i < spreads.length; i++) {
  if (spreads[i].pageItems.length > 1) {
    p = spreads[i].pageItems.everyItem().getElements();
    spreads[i].pageItems.everyItem().locked = false;
    for (var j = 0; j < p.length; j++){
        if (p[j].parentPage.side == PageSideOptions.RIGHT_HAND) {
            p[j].move([ 0 , 0 ] , [ x , 0 ])
        } else{
            p[j].move([ 0 , 0 ] , [ -x , 0 ])
        }
    };   
  }
}

app.scriptPreferences.measurementUnit = AutoEnum.AUTO_VALUE;

1 reply

rob day
Community Expert
rob dayCommunity ExpertCorrect answer
Community Expert
February 19, 2024

Hi @NexusFred , If you want to move the page items via the script, you don’t have to group anything. This would move page items (not masterpage items) 3mm away from the spine:

 

var x = 3;
app.scriptPreferences.measurementUnit = MeasurementUnits.MILLIMETERS;
var spreads = app.documents[0].spreads.everyItem().getElements();
var p;
for (i = 0; i < spreads.length; i++) {
  if (spreads[i].pageItems.length > 1) {
    p = spreads[i].pageItems.everyItem().getElements();
    spreads[i].pageItems.everyItem().locked = false;
    for (var j = 0; j < p.length; j++){
        if (p[j].parentPage.side == PageSideOptions.RIGHT_HAND) {
            p[j].move([ 0 , 0 ] , [ x , 0 ])
        } else{
            p[j].move([ 0 , 0 ] , [ -x , 0 ])
        }
    };   
  }
}

app.scriptPreferences.measurementUnit = AutoEnum.AUTO_VALUE;
NexusFred
NexusFredAuthor
Inspiring
February 19, 2024

Thanks a lot @rob day 

This saves my day. 700 pages to move, I couldn't see myself doing it manually lol

 

Thanks :-)