[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt zwei Seiten vertauschen

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

zwei Seiten vertauschen

photojo
Beiträge gesamt: 35

21. Mai 2020, 08:20
Beitrag # 1 von 27
Bewertung:
(9734 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,

ich würde gerne zwei ausgewählte Seiten per Script vertauschen: 12 -> 50 - 50 -> 14

Wie finde ich denn ganz allgemein heraus, wie ich in diesem Fall z. B. die Eigenschaft "Seitenzahl" einer selektierten Seite auslese?
Die Logik, die Seiten dann zu tauschen kriege ich, denke ich, dann schon hin.

Gruß
Jo
X

zwei Seiten vertauschen

WernerPerplies
Beiträge gesamt: 2674

21. Mai 2020, 08:58
Beitrag # 2 von 27
Beitrag ID: #575385
Bewertung:
(9718 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin Jo,

zuerst einmal, Du bist hier im falschen Forum gelandet, Dein Beitrag gehört in die Skriptwerkstatt.
Zitat Wie finde ich denn ganz allgemein heraus, wie ich in diesem Fall z. B. die Eigenschaft "Seitenzahl" einer selektierten Seite auslese?

Hier stellt sich sich die Frage, welche Seitenzahl möchtest Du?

Da gibt es Erstens die Eigenschaft "name", üblicherweise steht darin die Seitenzahl, aber als Anwender kannst Du den Inhalt frei bestimmen.

Und dann gibt es noch die Eigenschaft "documentOffset", hier findest Du den Index der Seite innerhalb des Documents.

Also:
page.name
oder
page.documentOffset.

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign Alle neuen Skripte mit
neu: WpsProjectHandler 31.05.2020, Version 3.XX, neue Funktionen.
MultiSave ist Bestandteil meines WpsProjecthandlers
neu: WpsEanInTables, WpsSaRInHyperlinks
Kundenstimmen


als Antwort auf: [#575384]

zwei Seiten vertauschen

photojo
Beiträge gesamt: 35

21. Mai 2020, 09:21
Beitrag # 3 von 27
Beitrag ID: #575387
Bewertung:
(9705 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Morgen Werner,

sorry, wenn ich im falschen Forum gelandet bin. (kann das ein Admin verschieben)

Und Danke für deine Erklärung.

Gruß
Jo


als Antwort auf: [#575385]

zwei Seiten vertauschen

Martin Fischer
  
Beiträge gesamt: 12515

21. Mai 2020, 09:31
Beitrag # 4 von 27
Beitrag ID: #575388
Bewertung:
(9699 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf: die Eigenschaft "Seitenzahl" einer selektierten Seite auslese?


Eigenschaften und Methoden zu Seiten/pages findest Du hier dokumentiert: Page

Eine (oder mehrere) Seite(n) in der Seitenpalette zu ermitteln geht nur auf einem indirekten Weg.
Uwe Laubender zeigt dies beeindruckend mit einer Einfärbenmethode in GetPages-SELECTED-IN-PAGES-PANEL-v2.0.jsx.

Viele Grüße
Martin




als Antwort auf: [#575384]

zwei Seiten vertauschen

photojo
Beiträge gesamt: 35

21. Mai 2020, 09:47
Beitrag # 5 von 27
Beitrag ID: #575389
Bewertung:
(9679 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke euch!

Also "einfach" die Nummer zweier selectierter Seiten auslesen
so in der Art
var seiteA = app.selection[0].page.number
var seiteB = app.selection[1].page.number

und dann mit move verschieben

geht also nicht?


als Antwort auf: [#575388]

zwei Seiten vertauschen

Gerald Singelmann
  
Beiträge gesamt: 6249

21. Mai 2020, 10:10
Beitrag # 6 von 27
Beitrag ID: #575392
Bewertung:
(9669 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Das page Objekt hat sowohl eine documentOffset Eigenschaft als auch eine name Eigenschaft.

documentOffset gibt an, die wievielte Seite im Dokument das ist.
name gibt an, was in der Seitennummerierungsvariable steht.

HTH


als Antwort auf: [#575384]

zwei Seiten vertauschen

photojo
Beiträge gesamt: 35

21. Mai 2020, 10:18
Beitrag # 7 von 27
Beitrag ID: #575393
Bewertung:
(9664 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke Gerald,

würdest du mir bitte noch einen Tipp geben, wie ich nun konkret die Nummer der ausgewählten Seite ermitteln kann?

Danke!

Gruß
Jo


als Antwort auf: [#575392]

zwei Seiten vertauschen

WernerPerplies
Beiträge gesamt: 2674

21. Mai 2020, 10:58
Beitrag # 8 von 27
Beitrag ID: #575394
Bewertung:
(9653 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Doch, move sollte schon funktionieren:

probiere mal das aus:
Code
var /*Page*/first = app.activeDocument.pages.itemByName("4"); 
var /*Page*/second = app.activeDocument.pages.itemByName("5");
exchangePages(/*Page*/first, /*Page*/second);

/*Boolean*/function exchangePages(/*Page*/first, /*Page*/second){
try{
var /*Page*/p = null;
if (first.documentOffset === 0)
p = app.activeDocument.pages.item(2);
else
p = app.activeDocument.pages.item(first.documentOffset+1);
first.move(LocationOptions.BEFORE,second);
second.move(LocationOptions.BEFORE,p);
}
catch (error){
alert(error.message);
}
}


Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign Alle neuen Skripte mit
neu: WpsProjectHandler 31.05.2020, Version 3.XX, neue Funktionen.
MultiSave ist Bestandteil meines WpsProjecthandlers
neu: WpsEanInTables, WpsSaRInHyperlinks
Kundenstimmen


als Antwort auf: [#575389]

zwei Seiten vertauschen

photojo
Beiträge gesamt: 35

21. Mai 2020, 11:30
Beitrag # 9 von 27
Beitrag ID: #575395
Bewertung:
(9648 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke dir! Das klappt gut.
Und statt die Nummern einzugeben, die Seiten per Maus in der Seitenübersicht auswählen, geht eben nicht so tivial, oder? Habe ich das richtig verstanden?


als Antwort auf: [#575394]

zwei Seiten vertauschen

WernerPerplies
Beiträge gesamt: 2674

21. Mai 2020, 12:04
Beitrag # 10 von 27
Beitrag ID: #575396
Bewertung:
(9633 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Zitat Und statt die Nummern einzugeben, die Seiten per Maus in der Seitenübersicht auswählen, geht eben nicht so tivial, oder? Habe ich das richtig verstanden?

Richtig, Du kannst zwar die aktuelle Seite auslesen, aber wenn Du mehrere Seiten auslesen willst, brauchst Du entweder eine EventHandler-Lösung, einen nicht modalen Dialog, oder für jede Selection ein Skript, das die Selektionen sammelt und ein zweites Skript das die Selektionen verarbeitet.

Machbar, aber ich finde das sprengt den Rahmen einer kostenlosen Skriptlösung.

Ich füge Deine Anforderung auf jeden Fall mal der ToDo-Liste meines ProjektHandlers hinzu:
WpsProjectHandler

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign Alle neuen Skripte mit
neu: WpsProjectHandler 31.05.2020, Version 3.XX, neue Funktionen.
MultiSave ist Bestandteil meines WpsProjecthandlers
neu: WpsEanInTables, WpsSaRInHyperlinks
Kundenstimmen


als Antwort auf: [#575395]

zwei Seiten vertauschen

photojo
Beiträge gesamt: 35

22. Mai 2020, 08:14
Beitrag # 11 von 27
Beitrag ID: #575406
Bewertung:
(9547 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke dir für deine Antwort.

Ich erkläre mein Problem mal kurz: evtl. gibt es ja noch eine andere Lösung. Ich setze jedes Jahr für meine Schule den Jahresbericht. Sehr oft muss ich Seiten vertauschen, z.B. 17 mit 23. Wenn das über die Auswahl per Maus zu kompliziert ist, könntest du mir evtl. noch einen kleinen Lösungsansatz geben, wie ich dein o.g. Skript so umbauen kann, dass ich die beiden Seiten über ein Dialogfenster eingeben kann?
(Ich programmiere sehr viel in Angular und anderen Sprachen, aber irgendwie finde ich keinen Zugang zu diesen Skripten)

Herzlichen Dank und Grüße
Jo


als Antwort auf: [#575396]

zwei Seiten vertauschen

WernerPerplies
Beiträge gesamt: 2674

22. Mai 2020, 09:41
Beitrag # 12 von 27
Beitrag ID: #575409
Bewertung:
(9523 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin Jo,

ich muss mit dem Klammerbeutel gepudert sein! :-)

Ich liefere normalerweise niemals solch anwenderunfreundlichen und nicht ausgetestete Skripte ab!

Das folgende Skript funktioniert so:

1. Start: Skript ist aktiv und efordert, dass Du die erste Seite anspringst und ein Element auf der Seite selektierst.
Danach springst Du die zweite Seite an und selektierst wieder ein Element.
Danach sollten die Seiten vertauscht sein.
Dies kannst du beliebig lange wiederholen.
Danach musst Du das Skript erneut starten.

Das alles machst Du bitte erst nachdem Du Dein Dokument gesichert hast und auf eigenes Risiko!!!!!!!!

Code
// AFTER_SELECTION_CHANGED 
// CC 2020;
#target indesign-15.064
// CS 6 not testet!!!!!
// #target indesign-8.0
#targetengine "mySelectionChangedSession"

if ((afterSelectionChanged === undefined) || (afterSelectionChanged == null)){
var afterSelectionChanged = new AfterSelectionChanged();
if (afterSelectionChanged != null)
alert("PageExchange is active");
}
else{
afterSelectionChanged.removeListener();
afterSelectionChanged = null;
alert("PageExchange is inactive");
}

/*Object*/function AfterSelectionChanged(){
var/*EventListener*/ afterSelectionChangedListener = app.activeDocument.eventListeners.add("afterSelectionChanged", listenerTest);

function listenerTest () {
var /*Page*/page = null;
if (!("pages" in this))
this.pages = [];
if (app.selection.length > 0)
page = wpsGetParentPageOfObjectIfPossible(app.selection[0]);
if (page != null){
this.pages.push(page);
if (this.pages.length > 1){
exchangePages(this.pages[0], this.pages[1]);
this.pages.length = 0;
}
app.selection = NothingEnum.NOTHING;
}
}
this.removeListener = function(){
if(afterSelectionChangedListener != null)
afterSelectionChangedListener.remove();
}
/*page*/function wpsGetParentPageOfObjectIfPossible(/*object*/o)
{
try
{
var /*String*/whatIsIt = null, /*Page*/parentPage = null;

if (o === undefined)
return null;
if (o === null)
return null;
if (!(o.isValid))
return null;

if ("parentPage" in o)
return o.parentPage;

parentPage = (("parentTextFrames" in o) && (o.parentTextFrames.length >0)) ? o.parentTextFrames[0].parentPage : null;

if (parentPage != null)
return parentPage;

while (o != null)
{
if ("parentPage" in o)
return o.parentPage;
var whatIsIt = o.constructor;
switch (whatIsIt) {
case Page : return o;
case Character : o = o.parentTextFrames[0]; break;
case Footnote :; // drop through
case Cell : o = o.insertionPoints[0].parentTextFrames[0]; break;
case Note : o = o.storyOffset.parentTextFrames[0]; break;
case XMLElement : if (o.insertionPoints[0] != null) { o = o.insertionPoints[0].parentTextFrames[0]; break; }
case Application : return null;
default: o = o.parent;
}
if (o == null) return null;
}
return o
}
catch (error)
{
alert(error.message + "\nin File: " + error.fileName + "\nZeile: " + error.line);
// throw error;
}
return null;
}
/*Boolean*/function exchangePages(/*Page*/first, /*Page*/second){
try{
var /*Page*/p = null;
if (first.documentOffset === 0)
p = app.activeDocument.pages.item(2);
else {
if ((first.documentOffset +1) === second.documentOffset){
second.move(LocationOptions.BEFORE,first);
}
else{
p = app.activeDocument.pages.item(first.documentOffset+1);
first.move(LocationOptions.BEFORE,second);
second.move(LocationOptions.BEFORE,p);
}
}
}
catch (error){
alert(error.message);
}
}
}


Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign Alle neuen Skripte mit
neu: WpsProjectHandler 31.05.2020, Version 3.XX, neue Funktionen.
MultiSave ist Bestandteil meines WpsProjecthandlers
neu: WpsEanInTables, WpsSaRInHyperlinks
Kundenstimmen


als Antwort auf: [#575406]

zwei Seiten vertauschen

photojo
Beiträge gesamt: 35

22. Mai 2020, 10:00
Beitrag # 13 von 27
Beitrag ID: #575410
Bewertung:
(9516 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Grundgütiger! Werner! VIELEN DANK!

Ich weiß gerade echt nicht, was ich sagen soll!? Bin echt baff!
Ich probiere es gleich mal aus!

Herzliche Grüße
Jo


als Antwort auf: [#575409]

zwei Seiten vertauschen

photojo
Beiträge gesamt: 35

22. Mai 2020, 11:51
Beitrag # 14 von 27
Beitrag ID: #575411
Bewertung:
(9496 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
So, ich melde mich mit etwas Verspätung. Ich musste mein Projekt erst auf den Mac umziehen, da ich auf meinem Windows-Rechner ID 2020 nicht installiert habe.
Das Skript ist total genial. Allerdings werden die Seiten nicht immer korrekt vertauscht. In erster Linie dann nicht, wenn zwischen den Seiten noch andere sind, was ja im Prinzip der Kern der Problematik ist. Für das Tauschen zweier benachbarter Seiten brauch man ja auch kein Skript. Und zum Teil bekomme ich die Meldung "Ungültiger Wert für Parameter "reference" der Methode "move". Page or Spread erwartet, aber nothing erhalten."

Ich gebe hier einfach eine Rückmeldung! Ich möchte das bitte in keinster Weise als Kritik oder so verstanden wissen! Ich bin immer noch voller Anerkennung und Respekt für das, was Werner hier gemacht hat. Nochmals vielen Dank dafür!

Beste Grüße aus Regensburg
Jo


als Antwort auf: [#575410]

zwei Seiten vertauschen

WernerPerplies
Beiträge gesamt: 2674

22. Mai 2020, 12:21
Beitrag # 15 von 27
Beitrag ID: #575413
Bewertung:
(9488 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin Jo,

Zitat So, ich melde mich mit etwas Verspätung. Ich musste mein Projekt erst auf den Mac umziehen, da ich auf meinem Windows-Rechner ID 2020 nicht installiert habe.

Ich glaube nicht, dass Du das musstest.
Sondern nur das machen:
Code
// AFTER_SELECTION_CHANGED  
// CC 2020;
// #target indesign-15.064
// CS 6 not testet!!!!!
#target indesign-8.0

Zitat Das Skript ist total genial.

Das kann nicht sein, wenn Du Probleme hast.
Zitat In erster Linie dann nicht, wenn zwischen den Seiten noch andere sind, was ja im Prinzip der Kern der Problematik ist.

Liefere mir bitte eine Datei, und beschreibe mir genau, was Du machst, wenn was nicht funktioniert.
Zitat Und zum Teil bekomme ich die Meldung "Ungültiger Wert für Parameter "reference" der Methode "move". Page or Spread erwartet, aber nothing erhalten."

s. o., ohne genaue Angaben hift selbst meine Kristallkugel nicht.
Zitat Ich gebe hier einfach eine Rückmeldung! Ich möchte das bitte in keinster Weise als Kritik oder so verstanden wissen! Ich bin immer noch voller Anerkennung und Respekt für das, was Werner hier gemacht hat.

Kritik und Rückmeldungen sind wichtig, davon lebt meine Arbeit, aber jetzt bist Du dran mit der Arbeit, aslo bitte Testdaten und eine genaue Fehlerbeschreibung.

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign Alle neuen Skripte mit
neu: WpsProjectHandler 31.05.2020, Version 3.XX, neue Funktionen.
MultiSave ist Bestandteil meines WpsProjecthandlers
neu: WpsEanInTables, WpsSaRInHyperlinks
Kundenstimmen


als Antwort auf: [#575411]
X

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
14.02.2022

Zürich, Online
Montag, 14. Feb. 2022, 07.30 - 18.00 Uhr

Word Press / Digitalisierung / Selbständigkeit

Digitalisierung und KMU's in der Schweiz Leistungsfähig im Zeitalter der Digitalisierung Machine Learning Künstliche Intelligenz CRM Change Management Kommunikation im Betrieb Kommunikation digitale Medien Digitale Vertriebsmodelle

Ja

Organisator: B. Isik

Kontaktinformation: B. Isik / Daniela Lovric, E-Mailinfo AT snfa DOT ch

https://www.fernstudiumfitness.ch/website-mit-wix-erstellen/

Veranstaltungen
01.03.2022 - 03.03.2022

Online
Dienstag, 01. März 2022, 10.00 Uhr - Donnerstag, 03. März 2022, 11.30 Uhr

Workshop-Reihe

Sie wollen barrierefreie PDF-Dokumente mit möglichst wenig Aufwand erstellen? Mit ein wenig Grundlagenwissen können Sie dies aus InDesign mit axaio MadeToTag erreichen – ohne manuelle Nacharbeit im PDF! In diesem 3-teiligen, interaktiven Workshop, den wir vom 1. – 3. März 2022 organisieren, lernen die Teilnehmenden, wie sie zielführend beim Erstellen von barrierefreien PDF-Dokumenten aus Adobe InDesign vorgehen. Dafür wird zu Beginn vermittelt, was ein barrierefreies PDF ist, und welche Anforderungen an solche Dokumente bestehen. Mit diesem Wissen werden, anhand von Best-Practice-Beispielen, Strategien zum effizienten Erstellen von PDF/UA-konformen Dokumenten und Formularen mit Adobe InDesign und axaio MadeToTag gezeigt. Außerdem werden Lösungen für klassische Probleme vermittelt. Die Teilnehmenden erhalten im Vorfeld eine Liste der notwendigen Software, wie auch vorbereitete Workshop-Daten, an denen alle im Workshop unter Anleitung arbeiten. Während des Workshops haben die Teilnehmenden die Möglichkeit, Fragen zu stellen.

Die Webinar-Serie besteht aus drei Teilen, an drei verschiedenen Terminen, die aufeinander aufbauen: 1.-3. März 2022, jeweils von 10.00-11.30 Uhr, mit anschliessender 20-minütiger Diskussionsrunde.
Teilnahmegebühr: 89,- EUR (zzgl. MwSt).

Ja

Organisator: axaio software

Kontaktinformation: Karina Zander, E-Mailk.zander AT axaio DOT com

https://www.axaio.com/doku.php/de:news:interaktive-webinar-serie

Barrierefreie PDF-Dokumente erstellen mit Adobe InDesign & axaio MadeToTag