Sidamo
09.01.17, 11:44
Hallo,
wir müssen sehr regelmäßig etliche Dokumente in 1 zu 1 ausdrucken die wir vorher mit Maßstab fotografiert haben.
Das sind etliche blöde Schritte die ich gerne vereinfacht hätte damit es schneller und sicherer funktioniert.
Hab mal angefangen ein Eingabefeld in JavaScript zu schreiben.
Das funktioniert auch schon ziemlich gut.
Probleme hab ich beim Werte kopieren und eintragen über JavaScript
Also die Werte aus dem Menü kopieren und in PS eintragen.
//Bildauflösung Wert kopieren;// Bildauflösung Wert in das Auswahlwerkzeug eintragen; und //Ausschneidewerkzeug anwählen
Wer kennt sich den in JavaScript gut aus und weiß wie die Befehle heißen?
Gunnar
Script:
// Größe per JavaScript auf 1 zu 1 bringen
//startet Photoshop
#target photoshop
app.bringToFront();
//Ausschneidewerkzeug auswählen
//nach ausschneiden Menü starten
//Nun beginnt der eigentliche Aufbau des Dialogs. Die Maße werden immer in der Reihenfolge [links, oben, rechts, unten] angegeben. Das sind immer die X- und Y-Koordinaten der linken oberen und rechten unteren Ecke. Um dies zu vereinfachen, wird das Fensterobjekt für den Eingabedialog mit egdg für »Eigener Dialog« abgekürzt. Zunächst muss dieses Fensterobjekt aber erst einmal erzeugt werden.
//Menü
//Überschrift 1
var egdg = new Window ('dialog',
'Größe per JavaScript auf 1 zu 1 bringen', [200,200,560,420]);
//Überschrift 2
egdg.oben = egdg.add('panel',[15,10,340,150],
'Ausrichtung und Größe des Maßbandes');
//Unterschrift
egdg.oben.pixels = egdg.oben.add
('statictext',[15,80,300,40],'Immer nur ein Wert eintragen Quer oder Hoch!!');
//Größe in cm Quer
egdg.oben.label_xy = egdg.oben.add
('statictext',[15,20,150,40],'Quer Maßband-Größe: ');
egdg.oben.docx = egdg.oben.add
//Eingabefeld
('edittext',[150,20,180,40],'');
egdg.oben.pixels = egdg.oben.add
('statictext',[235,20,300,40],' cm');
//Größe in cm hoch
egdg.oben.label_xy = egdg.oben.add
('statictext',[15,45,150,65],'Hoch Maßband-Größe: ');
egdg.oben.docy = egdg.oben.add
//Eingabefeld
('edittext',[150,45,180,65],'');
egdg.oben.pixels = egdg.oben.add
('statictext',[235,45,300,65],' cm');
//OK und Abbrechen Button
egdg.unten = egdg.add('panel', [15,155,340,210],'Ausführen');
egdg.unten.ok = egdg.unten.add('button', [25,15,85,35],'OK', {name:'ok'});
egdg.unten.cancel = egdg.unten.add('button', [100,15,200,35],'Abbrechen', {name:'cancel'});
var ok = egdg.show() == 1;
//Die Variable ok wird gebraucht, damit alles Folgende nur ausgeführt wird, wenn ein Klick auf den OK-Button erfolgt ist. Beim Klick auf Abbrechen verschwindet der Dialog.
var ok = egdg.show() == 1;
//Die Floskel with (egdg.oben) erspart es uns, zusammen mit der geschweiften Klammer die beiden übergeordneten Objekte vor jedes abgefragte Element zu schreiben.
with (egdg.oben){
//Zahlenwerte für die Maßstabsgröße, die als Text übergeben werden, in Zahlen umgewandelt. Mit UnitValue in eine Einheit mit Wert umgewandelt
var Dok_Breite = UnitValue(docx.text,"px");
var Dok_Hoehe = UnitValue(docy.text,"px");
}
//wenn OK gedrückt
if(ok==true){
//wenn breite größer 0
if((Dok_Breite*1 ) >(0)){
// breite eintragen in die Bildgröße (fehlt noch)
}
//wenn höhe größer 0
if((Dok_Hoehe*1)>(0))
// höhe eintrage in die Bildgröße (fehlt noch)
}
else{
// wenn breite und höhe nicht größer 0 dann sprimg zum Eingabefeld (fehlt noch)
}
//Bildauflösung Wert kopieren (fehlt noch)
// Bildauflösung Wert in das Auswahlwerkzeug eintragen (fehlt noch)
//Beschnittenede Datei wieder durch Rückschritt herstellen (fehlt noch)
//Ausschneidewerkzeug anwählen (fehlt noch)
wir müssen sehr regelmäßig etliche Dokumente in 1 zu 1 ausdrucken die wir vorher mit Maßstab fotografiert haben.
Das sind etliche blöde Schritte die ich gerne vereinfacht hätte damit es schneller und sicherer funktioniert.
Hab mal angefangen ein Eingabefeld in JavaScript zu schreiben.
Das funktioniert auch schon ziemlich gut.
Probleme hab ich beim Werte kopieren und eintragen über JavaScript
Also die Werte aus dem Menü kopieren und in PS eintragen.
//Bildauflösung Wert kopieren;// Bildauflösung Wert in das Auswahlwerkzeug eintragen; und //Ausschneidewerkzeug anwählen
Wer kennt sich den in JavaScript gut aus und weiß wie die Befehle heißen?
Gunnar
Script:
// Größe per JavaScript auf 1 zu 1 bringen
//startet Photoshop
#target photoshop
app.bringToFront();
//Ausschneidewerkzeug auswählen
//nach ausschneiden Menü starten
//Nun beginnt der eigentliche Aufbau des Dialogs. Die Maße werden immer in der Reihenfolge [links, oben, rechts, unten] angegeben. Das sind immer die X- und Y-Koordinaten der linken oberen und rechten unteren Ecke. Um dies zu vereinfachen, wird das Fensterobjekt für den Eingabedialog mit egdg für »Eigener Dialog« abgekürzt. Zunächst muss dieses Fensterobjekt aber erst einmal erzeugt werden.
//Menü
//Überschrift 1
var egdg = new Window ('dialog',
'Größe per JavaScript auf 1 zu 1 bringen', [200,200,560,420]);
//Überschrift 2
egdg.oben = egdg.add('panel',[15,10,340,150],
'Ausrichtung und Größe des Maßbandes');
//Unterschrift
egdg.oben.pixels = egdg.oben.add
('statictext',[15,80,300,40],'Immer nur ein Wert eintragen Quer oder Hoch!!');
//Größe in cm Quer
egdg.oben.label_xy = egdg.oben.add
('statictext',[15,20,150,40],'Quer Maßband-Größe: ');
egdg.oben.docx = egdg.oben.add
//Eingabefeld
('edittext',[150,20,180,40],'');
egdg.oben.pixels = egdg.oben.add
('statictext',[235,20,300,40],' cm');
//Größe in cm hoch
egdg.oben.label_xy = egdg.oben.add
('statictext',[15,45,150,65],'Hoch Maßband-Größe: ');
egdg.oben.docy = egdg.oben.add
//Eingabefeld
('edittext',[150,45,180,65],'');
egdg.oben.pixels = egdg.oben.add
('statictext',[235,45,300,65],' cm');
//OK und Abbrechen Button
egdg.unten = egdg.add('panel', [15,155,340,210],'Ausführen');
egdg.unten.ok = egdg.unten.add('button', [25,15,85,35],'OK', {name:'ok'});
egdg.unten.cancel = egdg.unten.add('button', [100,15,200,35],'Abbrechen', {name:'cancel'});
var ok = egdg.show() == 1;
//Die Variable ok wird gebraucht, damit alles Folgende nur ausgeführt wird, wenn ein Klick auf den OK-Button erfolgt ist. Beim Klick auf Abbrechen verschwindet der Dialog.
var ok = egdg.show() == 1;
//Die Floskel with (egdg.oben) erspart es uns, zusammen mit der geschweiften Klammer die beiden übergeordneten Objekte vor jedes abgefragte Element zu schreiben.
with (egdg.oben){
//Zahlenwerte für die Maßstabsgröße, die als Text übergeben werden, in Zahlen umgewandelt. Mit UnitValue in eine Einheit mit Wert umgewandelt
var Dok_Breite = UnitValue(docx.text,"px");
var Dok_Hoehe = UnitValue(docy.text,"px");
}
//wenn OK gedrückt
if(ok==true){
//wenn breite größer 0
if((Dok_Breite*1 ) >(0)){
// breite eintragen in die Bildgröße (fehlt noch)
}
//wenn höhe größer 0
if((Dok_Hoehe*1)>(0))
// höhe eintrage in die Bildgröße (fehlt noch)
}
else{
// wenn breite und höhe nicht größer 0 dann sprimg zum Eingabefeld (fehlt noch)
}
//Bildauflösung Wert kopieren (fehlt noch)
// Bildauflösung Wert in das Auswahlwerkzeug eintragen (fehlt noch)
//Beschnittenede Datei wieder durch Rückschritt herstellen (fehlt noch)
//Ausschneidewerkzeug anwählen (fehlt noch)