Anzeige

suche Hilfe beim scripten unter PS CS2 - zwei Drucker ansteu

suche Hilfe beim scripten unter PS CS2 - zwei Drucker ansteu | PSD-Tutorials.de

Erstellt von BartD, 10.05.2006.

  1. BartD

    BartD Noch nicht viel geschrieben

    Dabei seit:
    10.05.2006
    Beiträge:
    5
    Geschlecht:
    männlich
    suche Hilfe beim scripten unter PS CS2 - zwei Drucker ansteu
    Hallo,

    ich bin sehr verzweifelt, und suche schon seit Tagen im Netz nach ein paar Tips zu meinem Problem.

    Also: Ich arbeite als Assistent für einen Fotografen. Bei Fotoeinsätzen macht er die fotos und ich bearbeite diese für den Druck in Photoshop und drucke diese vor Ort aus, einmal in DIN A4 und einmal in 10x15. Ich habe zwei Drucker zur Verfügung, und arbeite ausschließlich mit Aktionen. Da ich oft mehrere hundert Fotos ausdrucken muß...möchte ich meinen Workflow verbesser!
    Dabei habe ich zwei Probleme:

    a) wie kann ich per script/aktion definieren einen bestimmten Drucker anzusprechen?

    b) leider werden die Druckoptionen nicht alle in einer aktion gespeichert, wie klann ich dies umgehen?

    Es ist sehr läßtig mit STRG-P jedesmal einen anderen Drucker auszuwählen und dann och dort die Druckoptionen zu ändern, denn PS hat meist die Standard - Einstellungen gespeichert. Auch das Arbeiten mit Druckprofilen erleichert meine Arbeit nur unwesentlich.

    Unter Linux mit VB-Script scheint dies möglich zu sein?
    Zudem kenne ich mich mit scripten unter ps absolut nicht aus...! - Wer kann mir helfen.

    Gruss Jens
     
    #1      
  2. satanic_pornactor

    satanic_pornactor Aktives Mitglied

    Dabei seit:
    03.10.2005
    Beiträge:
    1.144
    Geschlecht:
    männlich
    suche Hilfe beim scripten unter PS CS2 - zwei Drucker ansteu
    Ich weiß ned genau, ob VB-Scripte mit den Aktionen in Photoshop kombiniert werden können. Wenn das auf Linux Worksations geht, dann muss es aber eigentlich auch in Windoof machmar sein. Mit Apple-Script geht das auf jeden Fall. Du darfst aber die Aktionen von Photoshop nicht mit einem Script verwechseln. Das sind Macros. Und genau die Macros müsstest du eben mit einem Script kombinieren, dass dann, nach der Bearbeitung, noch die Ausgabe am Drucker steuert.

    Ich habe, glaube ich, noch nie die Druckerausgabe versucht über eine Aktion zu steuern. Werde das heute mal versuchen. Es gibt ja diese "Desktop-Druckersymbole" für das Drucken via drag&drop. Die per script in ein eine Photoshop-Aktion einzubinden könnte evtl auch gehen.

    Aber wie gesagt, VB-scripte hab ich leider noch nie geschrieben.
     
    #2      
  3. hotschen

    hotschen Aktives Mitglied

    Dabei seit:
    08.07.2004
    Beiträge:
    520
    Geschlecht:
    männlich
    Ort:
    Thüringen
    Software:
    PS CS; Notepad
    suche Hilfe beim scripten unter PS CS2 - zwei Drucker ansteu
    Ich vermute mal, dass VB_Scripte nicht unter Linux laufen werden (Habs aber nie getestet und bin mir auch nicht sicher)
    Das kannst du doch aber ganz schnell testen. Speichere folgenden Code als "test.vbs" und führe die Datei aus.
    Code (Text):
    1. Dim appref, docref
    2. Set appref = CreateObject("Photoshop.Application")
    3. Set docref=appref.documents.add (500,500,72,"test.psd")
    4.  
    Sollte das klappen, könnte man dein Problem evtl. lösen, indem man vor dem Druckauftrag den Standarddrucker neu setzt.
    Bsp:
    Code (Text):
    1.  
    2. Set WSHNetwork = CreateObject("WScript.Network")
    3. WSHNetwork.SetDefaultPrinter "Druckername"
    4.  
    Nachtrag: Man kann VB-Scripte mit Aktionen nur in soweit verknüpfen, dass man eine Aktion per Script startet. Ein VBS über eine Aktion direkt zu starten geht nicht bzw. nur über den Umweg eines Javascripts, indem dann das VB-Script aufgerufen wird.
     
    #3      
  4. BartD

    BartD Noch nicht viel geschrieben

    Dabei seit:
    10.05.2006
    Beiträge:
    5
    Geschlecht:
    männlich
    suche Hilfe beim scripten unter PS CS2 - zwei Drucker ansteu
    Hallo,
    super vielen Dank für Eure Einträge. Gerade heute erst habe ich auch im Netz die Möglichkeit gefunden
    den Standarddrucker per script neu zu definieren. - Zwar weiß ich absolut nicht wie das gehen soll, doch werde mich die Tage mal damit beschäftigen. - Was funktiniert ist, das wenn ich eine Aktion neu schreibe und zum schluß dann einfach auf Automatisieren scripte....gehe, genau mein eben aufgerufenes Script in der Aktion gespeichert wird.
     
    #4      
  5. BartD

    BartD Noch nicht viel geschrieben

    Dabei seit:
    10.05.2006
    Beiträge:
    5
    Geschlecht:
    männlich
    suche Hilfe beim scripten unter PS CS2 - zwei Drucker ansteu
    benötige weitere Infos

    Hallo,

    die beiden vbs dateien von hotschen mit dem Standarddrucker setzen funktinieren...-aus Adobe Reader klappt das mit dem Neusetzen vom Drucker...doch leider nicht unter Photoshop. PS nimmt immer den letzten verwendeten Drucker !

    Jetzt habe ich den Scriptinglistener Plugin gefunden, der automatisch js und vb scripte erstellt von allem was man in PS gearde macht. - Ist eine super Werkzeug, nun habe ich die Druckrelevanten Zeilen in ein eigene .js gespeichert. Alle Druckoptionen werden gespeichert - Klasse, doch leider nicht der spezifische Drucker !

    ********************* script *********************************
    // =======================================================
    var id61 = charIDToTypeID( "setd" );
    var desc14 = new ActionDescriptor();
    var id62 = charIDToTypeID( "null" );
    var ref2 = new ActionReference();
    var id63 = charIDToTypeID( "Prpr" );
    var id64 = stringIDToTypeID( "printOptions" );
    ref2.putProperty( id63, id64 );
    var id65 = charIDToTypeID( "Dcmn" );
    var id66 = charIDToTypeID( "Ordn" );
    var id67 = charIDToTypeID( "Trgt" );
    ref2.putEnumerated( id65, id66, id67 );
    desc14.putReference( id62, ref2 );
    var id68 = charIDToTypeID( "T " );
    var desc15 = new ActionDescriptor();
    var id69 = charIDToTypeID( "PgSt" );
    var desc16 = new ActionDescriptor();
    var id70 = charIDToTypeID( "Rslt" );
    var id71 = charIDToTypeID( "#Pxl" );
    desc16.putUnitDouble( id70, id71, 300.000000 );
    var id72 = charIDToTypeID( "PgPs" );
    var id73 = charIDToTypeID( "PgPs" );
    var id74 = stringIDToTypeID( "userDefined" );
    desc16.putEnumerated( id72, id73, id74 );
    var id75 = charIDToTypeID( "Left" );
    var id76 = charIDToTypeID( "#Rlt" );
    desc16.putUnitDouble( id75, id76, -9.600000 );
    var id77 = charIDToTypeID( "Top " );
    var id78 = charIDToTypeID( "#Rlt" );
    desc16.putUnitDouble( id77, id78, 141.600000 );
    var id79 = charIDToTypeID( "Scl " );
    var id80 = charIDToTypeID( "#Prc" );
    desc16.putUnitDouble( id79, id80, 100.000000 );
    var id81 = charIDToTypeID( "PgSt" );
    desc15.putObject( id69, id81, desc16 );
    var id82 = charIDToTypeID( "PMps" );
    var desc17 = new ActionDescriptor();
    var id83 = charIDToTypeID( "ClrS" );
    var id84 = charIDToTypeID( "ClrS" );
    var id85 = charIDToTypeID( "ECMY" );
    desc17.putEnumerated( id83, id84, id85 );
    var id86 = charIDToTypeID( "Nm " );
    desc17.putString( id86, "Japan Color 2002 Newspaper" );
    var id87 = charIDToTypeID( "Inte" );
    var id88 = charIDToTypeID( "Inte" );
    var id89 = charIDToTypeID( "Clrm" );
    desc17.putEnumerated( id87, id88, id89 );
    var id90 = charIDToTypeID( "MpBl" );
    desc17.putBoolean( id90, true );
    var id91 = charIDToTypeID( "PMps" );
    desc15.putObject( id82, id91, desc17 );
    var id92 = stringIDToTypeID( "printOptions" );
    desc14.putObject( id68, id92, desc15 );
    executeAction( id61, desc14, DialogModes.NO );

    // =======================================================
    var id93 = charIDToTypeID( "Prnt" );
    var desc18 = new ActionDescriptor();
    var id94 = charIDToTypeID( "ClrS" );
    var id95 = charIDToTypeID( "ClrS" );
    var id96 = charIDToTypeID( "ECMY" );
    desc18.putEnumerated( id94, id95, id96 );
    var id97 = charIDToTypeID( "Nm " );
    desc18.putString( id97, "Japan Color 2002 Newspaper" );
    var id98 = charIDToTypeID( "Inte" );
    var id99 = charIDToTypeID( "Inte" );
    var id100 = charIDToTypeID( "Clrm" );
    desc18.putEnumerated( id98, id99, id100 );
    var id101 = charIDToTypeID( "MpBl" );
    desc18.putBoolean( id101, true );
    var id102 = charIDToTypeID( "Encd" );
    var id103 = charIDToTypeID( "Encd" );
    var id104 = stringIDToTypeID( "ASCII85" );
    desc18.putEnumerated( id102, id103, id104 );
    executeAction( id93, desc18, DialogModes.NO );

    ******************************************************************

    Die vb Datei gibt mir leider einen Komplilierungsfehler in Microsoft VBScript an!
    Zeile 99, Zeichen5, Fehler: Name erneut definiert, Code 800A0411 - hab keine Ahnung was das ist - denke mal ein Fehler von Adobe ?

    ************** vb Datei***********************************

    REM =======================================================
    DIM objApp
    SET objApp = CreateObject("Photoshop.Application")
    REM Use dialog mode 3 for show no dialogs
    DIM dialogMode
    dialogMode = 3
    DIM id158
    id158 = objApp.CharIDToTypeID( "setd" )
    DIM desc27
    SET desc27 = CreateObject( "Photoshop.ActionDescriptor" )
    DIM id159
    id159 = objApp.CharIDToTypeID( "null" )
    DIM ref4
    SET ref4 = CreateObject( "Photoshop.ActionReference" )
    DIM id160
    id160 = objApp.CharIDToTypeID( "Prpr" )
    DIM id161
    id161 = objApp.StringIDToTypeID( "printOptions" )
    Call ref4.PutProperty( id160, id161 )
    DIM id162
    id162 = objApp.CharIDToTypeID( "Dcmn" )
    DIM id163
    id163 = objApp.CharIDToTypeID( "Ordn" )
    DIM id164
    id164 = objApp.CharIDToTypeID( "Trgt" )
    Call ref4.PutEnumerated( id162, id163, id164 )
    Call desc27.PutReference( id159, ref4 )
    DIM id165
    id165 = objApp.CharIDToTypeID( "T " )
    DIM desc28
    SET desc28 = CreateObject( "Photoshop.ActionDescriptor" )
    DIM id166
    id166 = objApp.CharIDToTypeID( "PgSt" )
    DIM desc29
    SET desc29 = CreateObject( "Photoshop.ActionDescriptor" )
    DIM id167
    id167 = objApp.CharIDToTypeID( "Rslt" )
    DIM id168
    id168 = objApp.CharIDToTypeID( "#Pxl" )
    Call desc29.PutUnitDouble( id167, id168, 300.000000 )
    DIM id169
    id169 = objApp.CharIDToTypeID( "PgPs" )
    DIM id170
    id170 = objApp.CharIDToTypeID( "PgPs" )
    DIM id171
    id171 = objApp.StringIDToTypeID( "userDefined" )
    Call desc29.PutEnumerated( id169, id170, id171 )
    DIM id172
    id172 = objApp.CharIDToTypeID( "Left" )
    DIM id173
    id173 = objApp.CharIDToTypeID( "#Rlt" )
    Call desc29.PutUnitDouble( id172, id173, -9.600000 )
    DIM id174
    id174 = objApp.CharIDToTypeID( "Top " )
    DIM id175
    id175 = objApp.CharIDToTypeID( "#Rlt" )
    Call desc29.PutUnitDouble( id174, id175, 141.600000 )
    DIM id176
    id176 = objApp.CharIDToTypeID( "Scl " )
    DIM id177
    id177 = objApp.CharIDToTypeID( "#Prc" )
    Call desc29.PutUnitDouble( id176, id177, 100.000000 )
    DIM id178
    id178 = objApp.CharIDToTypeID( "PgSt" )
    Call desc28.PutObject( id166, id178, desc29 )
    DIM id179
    id179 = objApp.CharIDToTypeID( "PMps" )
    DIM desc30
    SET desc30 = CreateObject( "Photoshop.ActionDescriptor" )
    DIM id180
    id180 = objApp.CharIDToTypeID( "ClrS" )
    DIM id181
    id181 = objApp.CharIDToTypeID( "ClrS" )
    DIM id182
    id182 = objApp.CharIDToTypeID( "ECMY" )
    Call desc30.PutEnumerated( id180, id181, id182 )
    DIM id183
    id183 = objApp.CharIDToTypeID( "Nm " )
    Call desc30.PutString( id183, "Japan Color 2002 Newspaper" )
    DIM id184
    id184 = objApp.CharIDToTypeID( "Inte" )
    DIM id185
    id185 = objApp.CharIDToTypeID( "Inte" )
    DIM id186
    id186 = objApp.CharIDToTypeID( "Clrm" )
    Call desc30.PutEnumerated( id184, id185, id186 )
    DIM id187
    id187 = objApp.CharIDToTypeID( "MpBl" )
    Call desc30.PutBoolean( id187, True )
    DIM id188
    id188 = objApp.CharIDToTypeID( "PMps" )
    Call desc28.PutObject( id179, id188, desc30 )
    DIM id189
    id189 = objApp.StringIDToTypeID( "printOptions" )
    Call desc27.PutObject( id165, id189, desc28 )
    Call objApp.ExecuteAction( id158, desc27, dialogMode )

    REM =======================================================
    DIM objApp
    SET objApp = CreateObject("Photoshop.Application")
    REM Use dialog mode 3 for show no dialogs
    DIM dialogMode
    dialogMode = 3
    DIM id190
    id190 = objApp.CharIDToTypeID( "Prnt" )
    DIM desc31
    SET desc31 = CreateObject( "Photoshop.ActionDescriptor" )
    DIM id191
    id191 = objApp.CharIDToTypeID( "ClrS" )
    DIM id192
    id192 = objApp.CharIDToTypeID( "ClrS" )
    DIM id193
    id193 = objApp.CharIDToTypeID( "ECMY" )
    Call desc31.PutEnumerated( id191, id192, id193 )
    DIM id194
    id194 = objApp.CharIDToTypeID( "Nm " )
    Call desc31.PutString( id194, "Japan Color 2002 Newspaper" )
    DIM id195
    id195 = objApp.CharIDToTypeID( "Inte" )
    DIM id196
    id196 = objApp.CharIDToTypeID( "Inte" )
    DIM id197
    id197 = objApp.CharIDToTypeID( "Clrm" )
    Call desc31.PutEnumerated( id195, id196, id197 )
    DIM id198
    id198 = objApp.CharIDToTypeID( "MpBl" )
    Call desc31.PutBoolean( id198, True )
    DIM id199
    id199 = objApp.CharIDToTypeID( "Encd" )
    DIM id200
    id200 = objApp.CharIDToTypeID( "Encd" )
    DIM id201
    id201 = objApp.StringIDToTypeID( "ASCII85" )
    Call desc31.PutEnumerated( id199, id200, id201 )
    Call objApp.ExecuteAction( id190, desc31, dialogMode )

    ************************************************************

    Also man per js, nicht einen bestimmten Drucker ansprechen kann dann doch über vb!

    Wie könnte ich mit Hilfe des Erstellten vb script von Adobe, die Druckerausgabe auf einen bestimmten Drucker erzwingen. - Welche Befehle, bitte wenn es geht den vollständigen Code, hab nämlich keine Prog. Kenntnisse !

    Toll wäre auch wenn im vb script gleich am Anfang steht, das das aktuell in Photoshop geöffnete Dokument ausgedruckt werden soll !

    Vielen Tausen Dank

    Gr. Jens
     
    #5      
  6. BartD

    BartD Noch nicht viel geschrieben

    Dabei seit:
    10.05.2006
    Beiträge:
    5
    Geschlecht:
    männlich
    suche Hilfe beim scripten unter PS CS2 - zwei Drucker ansteu
    #6      
  7. hotschen

    hotschen Aktives Mitglied

    Dabei seit:
    08.07.2004
    Beiträge:
    520
    Geschlecht:
    männlich
    Ort:
    Thüringen
    Software:
    PS CS; Notepad
    suche Hilfe beim scripten unter PS CS2 - zwei Drucker ansteu
    Probier es mal so:
    Code (Text):
    1.  
    2. Dim appref, docref, WSHNetwork
    3. Set appref = CreateObject("Photoshop.Application")
    4. Set WSHNetwork = CreateObject("WScript.Network")
    5. Set docref=appref.ActiveDocument
    6.  
    7. WSHNetwork.SetDefaultPrinter "Drucker1"
    8. docref.PrintOut
    9.  
    10. WSHNetwork.SetDefaultPrinter "Drucker2"
    11. docref.PrintOut
    12.  
    (Erst ein Bild öffnen, dann das Script starten)

    Das Ganze lässt sich ohne Probleme auch auf ganze Ordner anwenden.
     
    #7      
  8. BartD

    BartD Noch nicht viel geschrieben

    Dabei seit:
    10.05.2006
    Beiträge:
    5
    Geschlecht:
    männlich
    suche Hilfe beim scripten unter PS CS2 - zwei Drucker ansteu
    Hallo,

    nachdem ich einen Schrecken bekommen habe, da ich keine vb sripts mehr ausführen konnte, habe ich kurzerhand die aktuelle WScript 5.6 von microsoft heruntergeladen und installiert - jetzt funkt. alles bestens, auch das Script. -

    Doch wie schon oben gesagt, obwohl ich den Standarddrucker jetzt per script definieren kann, Photoshop juckt das nicht die Bohne und sendet das Bild jedesmal an den zuletzt verwendeten Drucker. - In den Visual Basic Reference book, bei PS CS2 gibt es zwar ein PrintOut - Methode doch dort kann man nicht den Drucker aussuchen. - Gibt es denn keine Möglichkeit VB zu sagen auf welchen Drucker es das bild ausdrucken soll ???


    hab noch was gefunden:

    http://www.wer-weiss-was.de/theme161/article1674220.html
     
    #8      
Seobility SEO Tool
x
×
×