[GastForen Programmierung/Entwicklung AppleScript ID CS6: fit spread to window (Arbeitsumgebung einrichten)

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

ID CS6: fit spread to window (Arbeitsumgebung einrichten)

Goar
Beiträge gesamt: 395

13. Aug 2014, 21:52
Beitrag # 1 von 5
Bewertung:
(2623 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Skripter,

ich möchte mir für einen längeren Auftrag die benötigten Dokumentfenster per Skript auf dem Bildschirm platzieren.
Dabei konnte ich noch nicht herausbekommen, ob es einen direkten Befehl gibt, mit dem ich die Darstellungsgröße des aktiven Druckbogens an das aktive Fenster anpasse.
Mir reicht eine Musterzeile oder ein Hinweis, wo ich etwas dazu finden kann.
Über einen Hinweis, wie ich ein weiteres Fenster mit dem gleichen Dokument öffnen kann, würde ich mich auch sehr freuen.

Angefrustete Grüße
X

ID CS6: fit spread to window (Arbeitsumgebung einrichten)

Hans Haesler
  
Beiträge gesamt: 5826

14. Aug 2014, 08:42
Beitrag # 2 von 5
Beitrag ID: #530999
Bewertung:
(2566 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Goar,

versuche es bitte mal damit:

Code
tell application "Adobe InDesign CS6" 
activate
zoom layout window 1 given fit spread
end tell

Zum Öffnen eines weiteren Fensters ist mir kein direkter Befehl bekannt.
Möglicherweise muss man invoke menu action einsetzen.
Ich werde später in diese Richtung forschen.

Gruss, Hans


als Antwort auf: [#530996]

ID CS6: fit spread to window (Arbeitsumgebung einrichten)

Goar
Beiträge gesamt: 395

14. Aug 2014, 21:23
Beitrag # 3 von 5
Beitrag ID: #531040
Bewertung:
(2517 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
 
Hallo Hans,

vielen Dank, das war’s.
Jetzt, wo ich’s in deiner Antwort gelesen habe, habe ich’s auch in der ID-Bibliothek gefunden.

Zu invoke menu action:
Laut Adobe Indesign CS6 Scripting Guide wird die gewünschte menu action mit ihrem Namen angesprochen. Dieser Name lässt sich nicht so einfach aus dem lokalisierten Menüeintrag erschließen.
So lautet der Name für Fenster:Anordnen:Fenster teilen: {"$ID/kSplitWindowMenuItem"}
Diesen Namen kann man aber mit Hilfe eines Skripts ermitteln, das in der Anleitung beschrieben ist, zum Beispiel:

Code
tell application "Adobe InDesign CS6" 
set myMenuAction to menu action "Verknüpfungsmarke ausblenden"
set myKeyStrings to find key strings for title of myMenuAction
if class of myKeyStrings is list then
repeat with myKeyString in myKeyStrings
set myString to myKeyString & return
end repeat
else
set myString to myKeyStrings
end if
display dialog (myString)
set the clipboard to myString
end tell


Ergebnis: $ID/Hide Linked Story Status

Mit dem folgenden Skript kann der Befehl ausgeführt werden:

Code
tell application "Adobe InDesign CS6" 
--Get a reference to a menu action.
set myMenuAction to menu action "$ID/Hide Linked Story Status" -- Verknüpfungsmarke ausblenden
invoke myMenuAction
end tell


(Beide Skripts sinngemäß aus der oben genannten Anleitung.)


Leider ist bei der Anfrage für »Neues Fenster für ...« (wahlweise auch mit dem aktuellen Dateinamen) eine Fehlermeldung herausgekommen, weil myKeyStrings eine leere Liste ergab.

Nach einigem Herumstöbern sah ich, dass die menu actions nicht nur Namen, sondern auch einen Index haben. Also lasse ich mir doch mal anzeigen, was menu action 1 ist: Dokument ...
Ha, menu action 2 ist schon »Neues Fenster für«.
Und es funktionierte auch gleich mit dem ausführenden Skript:

Code
tell application "Adobe InDesign CS6" 
activate
name of menu action 2 -- zeigt den Namen
invoke menu action 2 -- führt die Aktion aus
end tell


Falls der Index von den Umständen abhängt, diese Funktion also nicht immer auf 2 liegt, könnte man die Namen aller menu actions auslesen (name of every menu action) und darin die aktuelle Position ermitteln


Wo wir einmal dran sind:

»Neues Fenster für …« kann mit einem Tastaturbefehl versehen werden, der dann mit "System Events" -> keystroke ausgeführt werden kann.

Code
tell application "System Events" 
tell process "Adobe InDesign CS6"
keystroke "x" using control down
end tell
end tell


Sorry! Habe ich gedacht, weil ich mit dem Verfahren immerhin einen Text in das Spotlight-Feld in eine Dokument-Info eintragen konnte, geht hier so aber nicht.
Da wollte ich jetzt nicht weiter hinterhergucken.

Ansonsten wäre noch auszuprobieren, ob es nach dieser Methode klappt:
http://www.hilfdirselbst.ch/...i?post=524528#524528

Viel Spaß beim Tüfteln und Gruß


als Antwort auf: [#530999]

ID CS6: fit spread to window (Arbeitsumgebung einrichten)

Hans Haesler
  
Beiträge gesamt: 5826

14. Aug 2014, 22:10
Beitrag # 4 von 5
Beitrag ID: #531042
Bewertung:
(2505 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Goar,

bitte sehr.

In Sachen MenuAction habe ich noch nichts unternehmen können (wegen anderen Baustellen).

Der Plan ist, mit folgendem JavaScript an die IDs für CS6 zu kommen:

Code
var myActions = app.menuActions; 
var myActionsList = new Array();

for (var i=0; i<myActions.length; i++) {
myActionsList.push(String(myActions[i].name));
myActionsList.push(String(myActions[i].area));
myActionsList.push(String(myActions[i].id));
}

var myDoc = app.activeDocument;
var myTextFrame = myDoc.pages[0].textFrames.add();
myTextFrame.geometricBounds = app.activeDocument.pages[0].bounds;

var myMenuActionsTbl = myTextFrame.insertionPoints[0].tables.add();
myMenuActionsTbl.columnCount = 3;
myMenuActionsTbl.bodyRowCount = myActions.length;
myMenuActionsTbl.contents = myActionsList;

Dieses Script stammt von Kasyan Servetsky und ist zu Beginn dieser Seite sichtbar: http://kasyan.ho.com.ua/open_menu_item.html

Ich hatte schon bei anderer Gelegenheit darauf hingewiesen: http://www.hilfdirselbst.ch/..._P495748.html#495748

Gruss, Hans


als Antwort auf: [#531040]

ID CS6: fit spread to window (Arbeitsumgebung einrichten)

Goar
Beiträge gesamt: 395

15. Aug 2014, 09:01
Beitrag # 5 von 5
Beitrag ID: #531047
Bewertung:
(2433 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

das ist ja beeindruckend.
Habe mir das Skript flugs in AS nachgebaut, bis zum Tabtext.
Was konkrete Beispiele (Kasyans Tabelle) doch helfen können:
Bevor ich die Tabelle sah, hatte ich keine Vorstellung, was mit area gemeint ist.

Hat wieder richtig Spaß gemacht mit dir


als Antwort auf: [#531042]
X