[GastForen Programme Print/Bildbearbeitung Adobe InDesign Script: XML-Tags auf Seiten duplizieren

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

Script: XML-Tags auf Seiten duplizieren

Stephan3
Beiträge gesamt: 38

6. Dez 2006, 15:57
Beitrag # 1 von 2
Bewertung:
(2274 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

vielleicht kann ja mir jemand helfen.

Ich suche ein Script, das mir eine Seite mit einer Tabelle jeweils und Bildrahmen, die ebenfalls mit Tags versehen sind,
dupliziert.

Sinn des Ganzen soll sein, später strukturiert eine XML-Datei importieren zu können.

Bisher habe ich das alles mühevoll per Hand gemacht, was meine Frustrationskurve nicht gerade reduziert hat.

Indesign kann natürlich einzelne Seiten duplizieren, ignoriert dabei aber geflissentlich die Tags.

Ich weiß, dass das per Script möglich ist, nur leider nicht wie.
Wenn jemand eine andere Idee noch hat, nur her damit.

;) Lieben Gruß aus Bottrop,

Stephan
X

Script: XML-Tags auf Seiten duplizieren

Martin Fischer
  
Beiträge gesamt: 12711

9. Dez 2006, 11:09
Beitrag # 2 von 2
Beitrag ID: #266167
Bewertung:
(2252 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Stephan,

Zitat von Stephan3 Indesign kann natürlich einzelne Seiten duplizieren, ignoriert dabei aber geflissentlich die Tags.



Das Problem beim manuellen Duplizieren der Seiten/Druckbogen mit getaggten Objekten über die Seitenpalette ist, daß dabei die XML-Struktur nicht in sich konsistent mitdupliziert wird, sondern daß z.B. image-Elemente nicht dem neuen übergeordneten XML-Element zugewiesen werden, sondern dem vorherigen übergeordneten Element.

Ein Versuch per Script zum Duplizieren von Seiten/Druckbogen führt zum selben Ergebnis.

Ich kann mir nicht vorstellen, daß dies im Sinne des Erfinders ist und vermute hier einen Bug.

Abhilfe schafft ein Workaround über das Copy & Paste-Verfahren. Hier bleibt die XML-Struktur konsistent:
1. Objekte des letzten Druckbogens auswählen und in die Zwischenablage kopieren;
2. neuen Druckbogen anlegen;
3. Objekte aus der Zwischenablage an der Originalposition einfügen.

Dies erledigt das folgende Skript.
In einem Dialog fragt es nach der Zahl der duplizierten Druckbögen.
Ist das Dokument doppelseitig aufgebaut, dann ergänzt es zunächst einen unvollständigen Druckbogen (eine statt zwei Seiten) um die fehlende Seite und vervilefältigt anschließend den jeweils letzten Druckbogen.


Code
// multiplySpreadWithTaggedObjects.jsx 

var myDoc = app.documents[0];
var myCopiesCount =prompt("Anzahl der Kopien: ","1");

if (myDoc.documentPreferences.facingPages == true) {
while (myDoc.spreads[-1].pages.length == 1) {
var mySel = myDoc.pages[-1].pageItems.everyItem().select();
app.copy();
var blankPage = myDoc.pages.add(LocationOptions.atEnd);
var lastPage = myDoc.pages.add(LocationOptions.atEnd);
app.pasteInPlace();
blankPage.remove();
myCopiesCount -=1;
}
}

var mySel = myDoc.spreads[-1].pageItems.everyItem().select();
app.copy();
for (k = 0; k < myCopiesCount*1; k++ ) {
var newSpread = myDoc.spreads.add();
app.pasteInPlace();
}



als Antwort auf: [#265733]