[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: 28

21. Mai 2020, 08:20
Beitrag # 1 von 27
Bewertung:
(4963 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: 2519

21. Mai 2020, 08:58
Beitrag # 2 von 27
Beitrag ID: #575385
Bewertung:
(4947 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
neu: WpsProjectHandler 15.06.2018, Version 1.75, neue Funktionen
Aktuelles
XING


als Antwort auf: [#575384]

zwei Seiten vertauschen

photojo
Beiträge gesamt: 28

21. Mai 2020, 09:21
Beitrag # 3 von 27
Beitrag ID: #575387
Bewertung:
(4934 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: 12311

21. Mai 2020, 09:31
Beitrag # 4 von 27
Beitrag ID: #575388
Bewertung:
(4928 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: 28

21. Mai 2020, 09:47
Beitrag # 5 von 27
Beitrag ID: #575389
Bewertung:
(4908 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: 6242

21. Mai 2020, 10:10
Beitrag # 6 von 27
Beitrag ID: #575392
Bewertung:
(4898 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: 28

21. Mai 2020, 10:18
Beitrag # 7 von 27
Beitrag ID: #575393
Bewertung:
(4893 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: 2519

21. Mai 2020, 10:58
Beitrag # 8 von 27
Beitrag ID: #575394
Bewertung:
(4882 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
neu: WpsProjectHandler 15.06.2018, Version 1.75, neue Funktionen
Aktuelles
XING


als Antwort auf: [#575389]

zwei Seiten vertauschen

photojo
Beiträge gesamt: 28

21. Mai 2020, 11:30
Beitrag # 9 von 27
Beitrag ID: #575395
Bewertung:
(4877 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: 2519

21. Mai 2020, 12:04
Beitrag # 10 von 27
Beitrag ID: #575396
Bewertung:
(4862 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
neu: WpsProjectHandler 15.06.2018, Version 1.75, neue Funktionen
Aktuelles
XING


als Antwort auf: [#575395]

zwei Seiten vertauschen

photojo
Beiträge gesamt: 28

22. Mai 2020, 08:14
Beitrag # 11 von 27
Beitrag ID: #575406
Bewertung:
(4776 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: 2519

22. Mai 2020, 09:41
Beitrag # 12 von 27
Beitrag ID: #575409
Bewertung:
(4752 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
neu: WpsProjectHandler 15.06.2018, Version 1.75, neue Funktionen
Aktuelles
XING


als Antwort auf: [#575406]

zwei Seiten vertauschen

photojo
Beiträge gesamt: 28

22. Mai 2020, 10:00
Beitrag # 13 von 27
Beitrag ID: #575410
Bewertung:
(4745 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: 28

22. Mai 2020, 11:51
Beitrag # 14 von 27
Beitrag ID: #575411
Bewertung:
(4725 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: 2519

22. Mai 2020, 12:21
Beitrag # 15 von 27
Beitrag ID: #575413
Bewertung:
(4717 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
neu: WpsProjectHandler 15.06.2018, Version 1.75, neue Funktionen
Aktuelles
XING


als Antwort auf: [#575411]
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
04.09.2020 - 05.03.2021

Digicomp Academy AG, Limmatstrasse 50, 8005 Zürich
Freitag, 04. Sept. 2020, 13.00 Uhr - Freitag, 05. März 2021, 12.00 Uhr

Lehrgang

Bilden Sie sich zum zertifizierten Publishing-Multimedia-Profi aus. Neben Fotografie und Video befassen Sie sich mit der Medienproduktion, digitalen Publikationen und dem Webdesign für Desktop- und mobile Endgeräte. Mit dem Abschluss «Publisher Professional – Profil «Multimedia» verliehen durch die Digicomp Academy AG, bestätigen Sie Ihre Praxiserfahrungen und Qualifizierung in den genannten Themengebieten gegenüber Ihrem Arbeitgeber sowie Ihren Kunden.

Preis: CHF 10'500.-
Dauer: 30 Tage (ca. 210 Lektionen) – Unterricht findet jeweils am Freitag von 13 - 19 Uhr und Samstag von 09 - 17 Uhr statt

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/publishing-lehrgaenge/lehrgang-publisher-professional-profil-multimedia

Veranstaltungen
22.09.2020 - 23.09.2020

Digicomp Academy AG, Basel, Bern oder virtuell
Dienstag, 22. Sept. 2020, 08.30 Uhr - Mittwoch, 23. Sept. 2020, 17.00 Uhr

Kurs

In diesem Basic-Kurs lernen Sie das Wichtigste über den Aufbau und die Funktionsweise von Photoshop. Zusammen mit den notwendigen Grundlagen von Farbenlehre bis Bildauflösung lernen Sie zudem die kreativen Möglichkeiten von Photoshop kennen.

Preis: CHF 1'400.-
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/desktop-publishing/adobe-photoshop-cc/kurs-adobe-photoshop-cc-basic

Neuste Foreneinträge


Ja ich finde Adobe Anwendungen spitze, aber ...

Indesign Fußnoten/Endnoten bei Buchfunktion

Problem mit der Verknüpfung von InDesign mit Excel

Suchen und Ersetzen in Arrays

Pfeil zurück geht nur im eingeloggten Zustand

Illustrator: Anker-Anzeige in Schrift

Automatische Farbmengenberechnung

Lüftergeräusch nach Installation von Catalina update 10.15.6

Tastatur-Kürzel in Dialogen tun nicht mehr

safaribookmarkssyncagent wurde unerwartet beendet Fehlermeldung geht nicht mehr weg
medienjobs