2016-05-25 4 views
0

Ich möchte überschreiben die Überschreibungen von Master-Elemente entfernen, aber nur Elemente in Objektstil X, ich schrieb:InDesign - entfernen Master Items verwenden Selektoren

var doc = app.activeDocument; 
var pgs = doc.pages; 
for(i = 0; i<pgs.length; i++){ 
    pgs[i].removeOverride(doc.objectStyles.itemByName("myObject")) 
} 

Und alle Überschreibungen entfernt. wie ich es mache? Vielen Dank im Voraus

Antwort

2

Dies ist zwar nicht sehr gut im InDesign Objektmodell dokumentiert, aber mit removeOverride() auf einer Seite (wie Sie tun) einfach entfernt alle Überschreibungen von allen pageItems auf, dass Seite. Auch removeOverride() nimmt keine Argumente. Stattdessen könnte man es wie folgt verwenden:

var pi = app.activeDocument.pageItems; 
var myOS = app.activeDocument.objectStyles.item('myObject'); 
for(var i = 0; i < pageItems.length; i += 1) { 
    if(pi[i].appliedObjectStyle === myOS) page[i].removeOverride(); 
} 

Das durch alle pageItems Schleifen, prüft jeder, wenn er den objectStyle hat und wenn beseitigt so die Überschreibung.

+0

vielen Dank, es hilft mir so – ABE

0

var main = function() { 
 
var doc = app.properties.activeDocument, 
 
pis, pi; 
 
if(!doc) return; 
 
pis = doc.pageItems, 
 
n = pis.length; 
 
while (n--) pis[n].overridden && pis[n].appliedObjectStyle.name=="myObject" && pis[n].removeOverride(); 
 
}; 
 

 
main();

+1

Ich nehme an, Sie wollten schreiben '' 'removeOverride()' '' anstelle von '' 'remove()' '', denn dann würde es funktionieren. – mdomino

+1

Sie haben Recht. Ich habe den Code geändert. – Loic

Verwandte Themen