[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Pagnierung am Seitenanfang ausgeben CS5

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

Pagnierung am Seitenanfang ausgeben CS5

fiduspub
Beiträge gesamt: 8

19. Okt 2011, 09:49
Beitrag # 1 von 15
Bewertung:
(4991 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Forum,

ich bin gestern bei meiner Suche auf das Skript "SeitenzahlEinfuegen_401d.js" gestoßen. Es ist genau das, was ich suchte. In CS3 funktioniert es auch hervorragend. In CS5 werden allerdings nur die Rahmen erstellt, die Seitenzahl wird nicht hinein kopiert. Könnte mir bitte jemand helfen, das Skript für CS5 anzupassen?

Hier das Skript, wie ich es verwendet habe:
Code
/ die Auswahl speichern ...  
var curSel = app.selection;
// ... und prüfen
if (curSel.length == 0) {
alert ("Es ist nichts ausgewählt.", "Achtung");
exit();
}

// der Variablen 'mainStory' den Textfluss zuweisen
if (curSel[0].constructor.name == "TextFrame") {
mainStory = curSel[0].parentStory;
}
else if (curSel[0].constructor.name == "InsertionPoint") {
mainStory = curSel[0].parent;
}
else {
alert ("Einen Rahmen des Textflusses auswählen.", "Stop");
exit();
}

// die Textrahmen, durch welche der Text fliesst
var allFrames = mainStory.textContainers;
// die Anzahl der Textrahmen speichern
var nFrames = allFrames.length;

// eine Schleife durch die Textrahmen
for (var f=0; f<nFrames; f++) {
// die Seite speichern, auf welcher sich der aktuelle Rahmen befindet
var pageName = allFrames[f].parent.name;
// der erste Einfügepunkt des Rahmens
var insPoint = allFrames[f].texts[0].insertionPoints[0];
// einen Textrahmen einfügen
var newFrame = insPoint.textFrames.add();
// die Grösse des Rahmens
newFrame.geometricBounds = [0, 0, 4, 8];
// die Seitenzahl einfügen
newFrame.parentStory.contents = pageName;
// den verankerten Rahmen aus dem Textrahmen herausholen
with (newFrame.anchoredObjectSettings) {
anchoredPosition = AnchorPosition.ANCHORED;
anchorPoint = AnchorPoint.BOTTOM_RIGHT_ANCHOR;
horizontalReferencePoint = AnchoredRelativeTo.TEXT_FRAME;
anchorXoffset = "3 mm";
}
}


Ich sollte vielleicht noch dazu sagen, dass ich von Skripten nur so viel verstehe, dass ich sie speichern und anwenden kann. Es ist auch mein erster Beitrag den ich schreibe obwohl ich mich schon eine ganze Weile mir das Forum zu nutzen mache, und auch schon viele wertvolle Lösungen hier gefunden habe. Danke dafür an alle!

Grüße
Carola
X

Pagnierung am Seitenanfang ausgeben CS5

Hans Haesler
  
Beiträge gesamt: 5791

19. Okt 2011, 10:26
Beitrag # 2 von 15
Beitrag ID: #482614
Bewertung:
(4976 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Carola,

herzlich willkommen auf HDS! :-)

Dieses Script kommt mir irgendwie bekannt vor ... Aber ich muss gleich weg und werde mich erst später um die Anpassung an CS5 kümmern können.

Gruss, Hans


als Antwort auf: [#482610]

Pagnierung am Seitenanfang ausgeben CS5

Uwe Laubender
Beiträge gesamt: 4818

19. Okt 2011, 13:52
Beitrag # 3 von 15
Beitrag ID: #482644
Bewertung:
(4935 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo, Carola!
Ohne jetzt dem lieben Hans in den Rücken fallen zu wollen, auf die Schnelle die Anpassung an InDesign CS5 (oder CS5.5):

Ändere folgende Zeile:
Code
var pageName = allFrames[f].parent.name; 

in:
Code
var pageName = allFrames[f].parentPage.name; 


//EDIT: Die Forensoftware hatte wieder zugeschlagen und den b-Anfangs-Tag für Fettstellung mit in den Code geschrieben. Jetzt ist der Code hoffentlich fehlerfrei.
//EDIT 2: Ja, so stimmen die Zeilen…
*****
Mit herzlichem Gruß,
Uwe Laubender


als Antwort auf: [#482610]
(Dieser Beitrag wurde von Uwe Laubender am 19. Okt 2011, 13:56 geändert)

Pagnierung am Seitenanfang ausgeben CS5

fiduspub
Beiträge gesamt: 8

19. Okt 2011, 14:08
Beitrag # 4 von 15
Beitrag ID: #482648
Bewertung:
(4919 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Uwe,

super, es funktioniert. Vielen Dank für die rasche Hilfe. Wäre es noch möglich dem Rahmen einen Objektstil zu geben, z.B. "pagina"?

Viele Grüße
Carola


als Antwort auf: [#482644]

Pagnierung am Seitenanfang ausgeben CS5

Hans Haesler
  
Beiträge gesamt: 5791

19. Okt 2011, 14:20
Beitrag # 5 von 15
Beitrag ID: #482654
Bewertung:
(4905 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Carola,

der liebe Uwe hat Dir die kleine Änderung, welche für CS5 notwendig ist schon durchgegeben. Das hatte ich beim ersten Durchlesen auch gedacht, hatte aber keine Zeit mehr zu testen, ob diese Änderung genügt.

Nachstehend nun der gesamte Code. Drei zusätzliche Änderungen:
1. Dank 'hasOwnProperty("baseline")' (anstelle von 'constructor.name == "InsertionPoint")') sind ausser dem Curser noch alle anderen Textauswahlmöglichkeiten erfasst.
2. Dein Wunsch zum Zuweisen eines Objektformats ist umgesetzt.
3. Am Schluss wird das Ende der Aktion verkündet.

Code
//SeitenzahlEinfuegen_501d.js 

// die Auswahl speichern ...
var curSel = app.selection;
// ... und prüfen
if (curSel.length == 0) {
alert ("Es ist nichts ausgewählt.", "Achtung");
exit();
}

// der Variablen 'mainStory' den Textfluss zuweisen
if (curSel[0].constructor.name == "TextFrame") {
mainStory = curSel[0].parentStory;
}
else if (curSel[0].hasOwnProperty("baseline")) {
mainStory = curSel[0].parent;
}
else {
alert ("Einen Rahmen des Textflusses auswählen.", "Stop");
exit();
}

// die Textrahmen, durch welche der Text fliesst
var allFrames = mainStory.textContainers;
// die Anzahl der Textrahmen speichern
var nFrames = allFrames.length;

// eine Schleife durch die Textrahmen
for (var f=0; f<nFrames; f++) {
// die Seite speichern, auf welcher sich der aktuelle Rahmen befindet
var pageName = allFrames[f].parentPage.name;
// der zweitletzte Einfügepunkt der letzen Zeile des Rahmens
var insPoint = allFrames[f].texts[0].lines.item(-1).insertionPoints.item(-2);
// einen Textrahmen einfügen
var newFrame = insPoint.textFrames.add();
// die Grösse des Rahmens
newFrame.geometricBounds = [0, 0, 4, 8];
// die Seitenzahl einfügen
newFrame.parentStory.contents = pageName;
// ein Objetktformat zuweisen
newFrame.appliedObjectStyle = app.documents[0].objectStyles.itemByName("pagina");
// den verankerten Rahmen aus dem Textrahmen herausholen
with (newFrame.anchoredObjectSettings) {
anchoredPosition = AnchorPosition.ANCHORED;
anchorPoint = AnchorPoint.BOTTOM_RIGHT_ANCHOR;
horizontalReferencePoint = AnchoredRelativeTo.TEXT_FRAME;
anchorXoffset = "3 mm";
}
}

// 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(999);
// das Fenster schliessen
dlog.close();

Gruss, Hans


als Antwort auf: [#482648]

Pagnierung am Seitenanfang ausgeben CS5

fiduspub
Beiträge gesamt: 8

19. Okt 2011, 15:06
Beitrag # 6 von 15
Beitrag ID: #482667
Bewertung:
(4879 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

danke schön, das ist prima und genau das was ich brauche. Folgende Zeile habe ich noch geändert, um die Rahmen am Seitenanfang zu haben (habe ich mir von hier abgeschaut: "http://www.hilfdirselbst.ch/foren/_P454757.html".

von
Code
	// der zweitletzte Einfügepunkt der letzen Zeile des Rahmens  
var insPoint = allFrames[f].texts[0].lines.item(-1).insertionPoints.item(-2);


in
Code
	// der erste Einfügepunkt des Rahmens   
var insPoint = allFrames[f].texts[0].insertionPoints[0];


hier noch mal komplett:
Code
//SeitenzahlEinfuegen_501d.js  

// die Auswahl speichern ...
var curSel = app.selection;
// ... und prüfen
if (curSel.length == 0) {
alert ("Es ist nichts ausgewählt.", "Achtung");
exit();
}

// der Variablen 'mainStory' den Textfluss zuweisen
if (curSel[0].constructor.name == "TextFrame") {
mainStory = curSel[0].parentStory;
}
else if (curSel[0].hasOwnProperty("baseline")) {
mainStory = curSel[0].parent;
}
else {
alert ("Einen Rahmen des Textflusses auswählen.", "Stop");
exit();
}

// die Textrahmen, durch welche der Text fliesst
var allFrames = mainStory.textContainers;
// die Anzahl der Textrahmen speichern
var nFrames = allFrames.length;

// eine Schleife durch die Textrahmen
for (var f=0; f<nFrames; f++) {
// die Seite speichern, auf welcher sich der aktuelle Rahmen befindet
var pageName = allFrames[f].parentPage.name;
// der zweitletzte Einfügepunkt der letzen Zeile des Rahmens
var insPoint = allFrames[f].texts[0].lines.item(-1).insertionPoints.item(-2);
// einen Textrahmen einfügen
var newFrame = insPoint.textFrames.add();
// die Grösse des Rahmens
newFrame.geometricBounds = [0, 0, 4, 8];
// die Seitenzahl einfügen
newFrame.parentStory.contents = pageName;
// ein Objetktformat zuweisen
newFrame.appliedObjectStyle = app.documents[0].objectStyles.itemByName("pagina");
// den verankerten Rahmen aus dem Textrahmen herausholen
with (newFrame.anchoredObjectSettings) {
anchoredPosition = AnchorPosition.ANCHORED;
anchorPoint = AnchorPoint.BOTTOM_RIGHT_ANCHOR;
horizontalReferencePoint = AnchoredRelativeTo.TEXT_FRAME;
anchorXoffset = "3 mm";
}
}

// 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(999);
// das Fenster schliessen
dlog.close();


Danke noch mal und viele Grüße
Carola


als Antwort auf: [#482654]

Pagnierung am Seitenanfang ausgeben CS5

Uwe Laubender
Beiträge gesamt: 4818

19. Okt 2011, 15:07
Beitrag # 7 von 15
Beitrag ID: #482668
Bewertung:
(4879 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo, Hans!
Noch ein kleiner Verbesserungsvorschlag, der das Script unabhängig von der InDesign-Version macht:

Code
//Als contents der neuen Textrahmen die "AutoPageNumber" benutzen: 
var pageName = "\u0018";

*****
Mit herzlichem Gruß,
Uwe Laubender


als Antwort auf: [#482654]

Pagnierung am Seitenanfang ausgeben CS5

Hans Haesler
  
Beiträge gesamt: 5791

19. Okt 2011, 15:23
Beitrag # 8 von 15
Beitrag ID: #482670
Bewertung:
(4865 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
 
Hallo Uwe,

sehr gute Idee! :-)

@ Carola: In diesem Fall kann auf die Variable pageNumber verzichtet werden.

Also: Die Zeilen 38 und 39 so ändern:

Code
// im aktuellen neuen Rahmen die "AutoPageNumber" einsetzen 
newFrame.parentStory.contents = "\u0018";

Und die Zeilen 30 und 31 ...

Code
// die Seite speichern, auf welcher sich der aktuelle Rahmen befindet 
var pageName = allFrames[f].parentPage.name;

... komplett löschen.

Gruss, Hans


als Antwort auf: [#482668]

Pagnierung am Seitenanfang ausgeben CS5

Hans Haesler
  
Beiträge gesamt: 5791

19. Okt 2011, 15:43
Beitrag # 9 von 15
Beitrag ID: #482673
Bewertung:
(4848 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Uwe,

allerdings ... die Idee ist nur sehr gut, wenn automatische Seitennummern willkommen sind.
Aber das wird uns Carola schon berichten.

Gruss, Hans


als Antwort auf: [#482670]

Pagnierung am Seitenanfang ausgeben CS5

TineF
Beiträge gesamt: 4

21. Aug 2012, 18:01
Beitrag # 10 von 15
Beitrag ID: #499705
Bewertung:
(4349 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

das Script war auch mir sehr nützlich beim Einfügen von Seitenzahlen. Ganz toll! Bei der Ausführung in CS6 erhielt ich jedoch eine Fehlermeldung. In folgender Zeile sei das Objekt ungültig:

var insPoint = allFrames[f].texts[0].insertionPoints[0];

Funktionieren tut es aber eigentlich trotzdem. Womit könnte die Fehlermeldung zusammenhängen?


als Antwort auf: [#482667]

Pagnierung am Seitenanfang ausgeben CS5

Hans Haesler
  
Beiträge gesamt: 5791

21. Aug 2012, 19:48
Beitrag # 11 von 15
Beitrag ID: #499708
Bewertung:
(4315 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo TineF,

herzlich willkommen in der Skriptwerkstatt auf HDS! :-)

Also ... ich habe jetzt das erste Script (gepostet am 19. Oktober 2011 um 14.20 Uhr) sowie die Variante von Carola von 15.06 Uhr (in welcher ich die Zeile 33 gemäss ihrer Ankündigung änderte) mit CS6 ausgeführt.
Ergebnis: Wie erwartet. Keine Fehlermeldung.

Fragen:
– Hat das Script mit CS5 ohne Fehlermedung funktioniert?
– In welcher Zeile hast Du das Speichern des Einfügepunktes geändert?
– Ist das CS6-Dokument exakt gleich aufgebaut wie jenes von CS5?

Ich vermute, dass sich am Ende der Kette ein leerer Rahmen befindet ...

Gruss, Hans


als Antwort auf: [#499705]

Pagnierung am Seitenanfang ausgeben CS5

Uwe Laubender
Beiträge gesamt: 4818

22. Aug 2012, 03:12
Beitrag # 12 von 15
Beitrag ID: #499716
Bewertung:
(4263 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf [ Hans Haesler ] Ich vermute, dass sich am Ende der Kette ein leerer Rahmen befindet ...

Hallo, Hans!
Das vermute ich auch.

Denn bei einem leeren Textrahmen am Ende einer Textrahmenkette ist texts[0].insertionPoints[0] einfach nicht vorhanden.
Nach einem kleinen Test mit einem solchen Objekt, kann ich nur feststellen, dass es einen try{}catch(e){}-Wickel braucht, um das abzufangen…

Ok. Was aber dann? In der Kette der Textrahmen soweit zurückgehen, bis Inhalt gefunden wird oder der erste Textrahmen erreicht ist und dann je nach Anzahl der leeren Textrahmen in der Kette eine passende Anzahl von (Text-)Rahmenumbruchzeichen einfügen, bevor die Seitenzahl eingesetzt wird?

Ja, ich denke, das sollte gehen. Testen werde ich's aber heute Nacht nicht mehr ;-)
*****
Mit herzlichem Gruß,
Uwe Laubender


als Antwort auf: [#499708]

Pagnierung am Seitenanfang ausgeben CS5

Hans Haesler
  
Beiträge gesamt: 5791

22. Aug 2012, 07:18
Beitrag # 13 von 15
Beitrag ID: #499718
Bewertung:
(4237 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Uwe,

danke für Deine Beteiligung.

Aber: Macht es Sinn, die Seitenzahl einzufügen, wenn daneben kein Text ist?
Vielleicht überrascht uns TineF mit einem triftigen Grund.

Gruss, Hans


als Antwort auf: [#499716]

Pagnierung am Seitenanfang ausgeben CS5

TineF
Beiträge gesamt: 4

23. Aug 2012, 09:38
Beitrag # 14 von 15
Beitrag ID: #499764
Bewertung:
(4168 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Vielen herzlichen Dank für die schnelle Antwort. :) Nachdem ich den leeren Rahmen am Ende gelöscht hatte, kam keine Fehlermeldung mehr. Ich war mir als blutiger Anfänger unsicher, inwiefern eine neue Indesign Version möglicherweise Einfluss auf die Skripte hat.

Seitenangaben für leere Seiten brauche ich nicht. Ich versuche mir ein wenig zu helfen bei der Erstellung der PageList einer ePub-Datei. Schade, dass das nicht automatisiert aus InDesign funktioniert.


als Antwort auf: [#499708]

Pagnierung am Seitenanfang ausgeben CS5

Hans Haesler
  
Beiträge gesamt: 5791

23. Aug 2012, 10:10
Beitrag # 15 von 15
Beitrag ID: #499768
Bewertung:
(4148 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo TineF,

bitteschön. Deine Unsicherheit ist verständlich.
Aber zum Glück funktionieren viele Scripts unverändert in verschiedenen Versionen.

Gruss, Hans


als Antwort auf: [#499764]
X

Aktuell

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
26.11.2020

Wie schafft man einen gleichbleibenden Farbeindruck im Druck und elektronischer Ausgabe? Peter Jäger erklärt wie es geht!

Zoom Meeting
Donnerstag, 26. Nov. 2020, 19.00 - 21.01 Uhr

Vortrag

Agenda: Vorstellung Verein freieFarbe e.V. und pro2media gmbh Was verlangt der Kunde? Gleichbleibende Farbe über sämtliche Ausgaben? Für welche Ausgaben (Offset- oder Digitaldruck, Kopiersysteme, elektronische Ausgaben) Umgang mit Farben bisher: mehrere Logos- und Bildvarianten Logo Entwicklung heute: anhand pro2media gmbh, ausgehend von nur einer Logovariante Crossmediale Farben bestimmen Einsatz von Hilfsmitteln wie digitaler- und gedruckter Farbatlas und Gamutmap.com Sauberes Farben CD erstellen mit eindeutig definierten Werten Umsetzung in den Softwaren (Word, FileMaker, InDesign, Illustrator, Web CMS, OpenSource usw.) Verarbeitung in den Druckereien (anhand Callas pdfToolbox)

Nein

Organisator: InDesign Usergroup Stuttgart

Kontaktinformation: Christoph Steffens, E-Mailidug AT satzkiste DOT de

idugs66.eventbrite.com

Grafik- und Bilddaten crossmedial aufbereiten
Veranstaltungen
30.11.2020 - 01.12.2020

Digicomp Academy AG, Limmatstrasse 50, 8005 Zürich
Montag, 30. Nov. 2020, 08.30 Uhr - Dienstag, 01. Dez. 2020, 17.00 Uhr

Kurs

Im Kurs lernen Sie die Schritte vom Import des Rohmaterials bis zum fertig exportierten Clip kennen. Dazu zählen die Materialverwaltung, das Trimmen für Roh- und Feinschnitt, Blenden, Titel und Effekte und eine Übersicht über die wichtigsten Formate.

Preis: CHF 1'700.-
Dauer: 2 Tage

Nein

Organisator: Digicomp Academy AG

Kontaktinformation: Isil Günalp, E-Mailisil.guenalp AT digicomp DOT ch

https://www.digicomp.ch/weiterbildung/software-anwendungs-trainings/adobe-trainings/video-und-audio-publishing/adobe-premiere-pro-cc/kurs-adobe-premiere-pro-cc-basic

Neuste Foreneinträge


Vorschlag vor Überschrift

Systemschriften nicht anzeigen Fontexplorer

Script um 2 Items von CC Library auf eine Seite zu plazieren

Quellenangaben von Bildern innerhalb des Dokumentes pflegen

Anpassung von Scriptfunktion auf Bleedbox

Schrift in Form umwandeln

Freitagsangebote für die 3 Programme von Serif

Zwei Fragen zur Tabelle

Hyperlink aktualisierung nach Dateiumbenennung

Transparente Klebefolie bedrucken
medienjobs