[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Seiten sortieren

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

Seiten sortieren

Hans Haesler
  
Beiträge gesamt: 5826

21. Okt 2015, 15:57
Beitrag # 16 von 17
Beitrag ID: #543856
Bewertung:
(2501 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Jo,

nicht Du hast etwas falsch gemacht, sondern ich. :-( Sorry.

In der Erklärung erwähne ich zwar 'try/catch', aber der gepostete Code enthält diesen noch nicht.
Aber diese Variante (gleichzeitig geprüft, aber nicht in den Beitrag gesetzt):

Code
var curDoc = app.activeDocument; 
var ctr = -1;
var allPages = curDoc.pages;
var nPages = allPages.length;
var searchArray = new Array("D","E","T","C","A","B");
var nItems = searchArray.length;

for (var n=0; n<nItems; n++) {
for (var p=nPages-1; p>-1; p--) {
var curPage = allPages[p];
// der aktuelle Testrahmen
try {
var testFrame = curPage.textFrames.itemByName("preisgruppe");
// dessen Inhalt prüfen
if (testFrame.contents.indexOf(searchArray[n]) != -1) {
curPage.move(LocationOptions.AFTER, curDoc.pages.item(ctr));
ctr--;
}
}
catch (e) {
}
}
}
alert ("FERTIG", " ");

Jetzt sollte ein fehlender Rahmen "preisgruppe" nicht mehr die Ursache für eine Fehlermeldung sein.

Gruss, Hans


als Antwort auf: [#543852]
X

Seiten sortieren

photojo
Beiträge gesamt: 38

15. Mai 2020, 08:09
Beitrag # 17 von 17
Beitrag ID: #575335
Bewertung:
(2024 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich habe nochmal eine Frage zu folgendem Skript. Das Skript sortiert die Seiten abhängig von dem Inhalt in einer Textbox Namens "rubrikbox".

Code
var _curDoc = app.activeDocument;  
var _ctr = -1;
var _alleSeiten = _curDoc.pages;
var _nSeiten = _alleSeiten.length;
var _searchArray = ["Tennis","Fußball","Skifahren"];

var _nItems = _searchArray.length;

for (var p=_nSeiten-1; p>-1; p--) {
var _curPage = _alleSeiten[p];
for (var n=0; n<_nItems; n++) {
var _pageItems = _curPage.allPageItems;
var _nPageItems = _pageItems.length;
for (var a=0; a<_nPageItems; a++) {
// das aktive Objekt
var _curPageItem = _pageItems[a];
// wenn das Objekt den Namen "rubrikbox" hat, mach was
if (_curPageItem.name == "rubrikbox") {
if (_curPageItem.contents.indexOf(_searchArray[n]) != -1) {
_curPage.move(LocationOptions.AFTER, _curDoc.pages.item(_ctr));
_ctr--;
break;
}
}
}
}
}
alert ("FERTIG", " ");


Das Problem: wenn das Array _searchArray nur ein Element beinhaltet, dann klappt es, d.h. die entspr. Seiten werden ans Ende verschoben.

Beinhaltet das Array aber mehr Elemente, ist die Sortierung fehlerhaft. Eine Systematik lässt sich aber nicht erkennen.
Sollte man eine Pause in der Schleife einbauen? Oder liegt der Fehler an einer anderen Stelle?

Danke und Grüße
Jo


als Antwort auf: [#543852]
X