Hallo Anita,
ich bedanke mich für das Dokument. So ist es einfacher. Und sicherer. Denn mit einem von mir konstruierten, hätte ich das nachstehend erwähnte Problem nicht gehabt.
Doch der Reihe nach: Die Idee war, mit
findText() die Absätze zu finden, welche mit "Randziffer" formatiert sind. Dann eine Schleife durch das Ergebnis und bei jedem Vorkommen die Zahl ändern.
Code //RandZiffern_501d.js //© 14.07.12 / Hans Haesler, Châtelard 52, CH-1018 Lausanne / hsa@ringier.ch //DESCRIPTION:Fortlaufende Numerierung der Randziffern // vorbeugenderweise das Anzeigen von Dialogen aktivieren app.scriptPreferences.userInteractionLevel = UserInteractionLevels.interactWithAll; if (app.documents.length == 0) { alert ("Es ist kein Dokument offen.", "Achtung"); exit(); } // das Dokument im Vordergrund var curDoc = app.documents[0]; // die Suchen-Ersetzen-Vorgaben zurücksetzen app.findTextPreferences = app.changeTextPreferences = null; // das Absatzformat bestimmen app.findTextPreferences.appliedParagraphStyle = "Randziffer"; // die Absätze finden var allParas = curDoc.findText(); // eine Schleife durch die Fundstellen und die Ziffern ändern var ctr = 1; for (var p=allParas.length-1; p>-1; p--) { allParas[p].contents = "" + ctr++; } // die Suchen-Ersetzen-Vorgaben zurücksetzen app.findTextPreferences = app.changeTextPreferences = null; // das Ende der Aktion verkünden var dlog = new Window("palette"); dlog.size = [320,100]; dlog.add("statictext", [80, 100, 320, 116], "Fertig."); dlog.show(); // eine kleine Pause $.sleep(1500); // das Fenster schliessen dlog.close(); Funktioniert vorzüglich. Bis auf Seite 22. Dort ist plötzlich
177 drin (anstelle von
7 ). Und so gibt es eine Verschiebung bis ans Ende des Dokuments.
Neuer Versuch: Eine Schleife durch die Seiten. Bei jeder Seite
alle pageItems auflisten, damit auch die verankerten gefunden werden. Dann eine Schleife durch das Ergebnis und bei jedem Rahmen das zugewiesene Absatzformat prüfen. Wenn es "Randziffer" ist, dann die Zahl ändern:
Code //RandZiffern_502d.js //© 14.07.12 / Hans Haesler, Châtelard 52, CH-1018 Lausanne / hsa@ringier.ch //DESCRIPTION:Fortlaufende Numerierung der Randziffern // vorbeugenderweise das Anzeigen von Dialogen aktivieren app.scriptPreferences.userInteractionLevel = UserInteractionLevels.interactWithAll; if (app.documents.length == 0) { alert ("Es ist kein Dokument offen.", "Achtung"); exit(); } // das Dokument im Vordergrund var curDoc = app.documents[0]; // eine Schleife durch die Seiten var ctr = 1; for (var s=0; s<curDoc.pages.length; s++) { // alle Rahmen var allFrames = curDoc.pages[s].allPageItems; // eine Schleife durch die Rahmen for (var t=0; t<allFrames.length; t++) { // wenn das Absatzformat stimmt ... try { if (allFrames[t].parentStory.appliedParagraphStyle.name == "Randziffer") { // die Zahl ändern allFrames[t].contents = "" + ctr++; } } catch (e) { } } } // das Ende der Aktion verkünden var dlog = new Window("palette"); dlog.size = [320,100]; dlog.add("statictext", [80, 100, 320, 116], "Fertig."); dlog.show(); // eine kleine Pause $.sleep(1500); // das Fenster schliessen dlog.close(); So klappt es. Vielleicht sollte man die Rahmen nach den vertikalen Positionen sortieren. Aber beim Überprüfen der 177 Randziffern konnte ich keine Unregelmässigkeit feststellen.
Gruss, Hans