Hallo!
Ich habe diese Methode jetzt auch probiert, aber ohne das gewünschte Ergebnis.
Ich möchte hier zur Erläuterung noch einmal ausholen, vielleicht ist dann auch besser verständlich, was das Ziel der Aktion ist.
Ich möchte Bilddateien im .tif oder .jpg Format erzeugen, die bestimmte Namen/Angaben enthalten, die bereits vorher als Variablen in einem anderen Script (dem "Umbenennungs-Tool", das ich ebenfalls hier erstellen und verbessern konnte und kann) benutzt oder festgelegt wurden.
Da ich keine Software gefunden habe, mit der sich das direkt machen läßt, erstelle ich erst eine Worddatei.
Dabei werden die Angaben mithilfe von Textmarken in die vorgesehenen und in Schriftart, -Größe und -Farbe unterschiedlich vorformatierten Textfelder auf einer A4 Vorlage eingesetzt. Wichtig dabei ist, daß dort bereits ein Zeichen drinsteht, das später gelöscht wird, sonst geht die Formatierung verloren. Dann wird aus denselben Variablen ein Dateiname kreiert, unter dem die Worddatei abgespeichert werden kann. Vorher aber wird sie kopiert, damit sie später in ein Bildprogramm eingefügt werden kann. Damit dabei auch das ganze Blatt erfaßt wird, und nicht nur die Zeilen, die dort gerade hereingeschrieben wurden, habe ich bei der Vorlage in alle 4 Ecken ganz außen ein kleines WordArt-Zeichen gesetzt und in weiß formatiert.
Das sieht bis dahin folgendermaßen aus (zur Erinnerung: Die hier verwendeten Variablen für Inhalte und teils auch Pfade sind bereits anderswo festgelegt, also nicht irritieren lassen!):
Code: Select all
InputBox, VD_SignBox, Virtuelles Deckblatt, Geben Sie die Aktensignatur ein!, ,225, 125, Verdana10
If ErrorLevel
return
else
VD_SignNeu := VD_SignBox
VD_AktSign := AktSign
DocumentPath := VD_Vorlage
BookmarkName1 := "AktSign_Marke"
BookmarkName2 := "Signatur_Marke"
oWord := ComObjCreate("Word.Application")
oDoc := oWord.Documents.Open(DocumentPath)
oWord.Visible := 1, oWord.Activate
oDoc.Bookmarks(BookmarkName1).Select
oDoc.Bookmarks(BookmarkName1).Range.Text := VD_AktSign
Send, {Left}{Del}
oDoc.Bookmarks(BookmarkName2).Select
oDoc.Bookmarks(BookmarkName2).Range.Text := VD_SignNeu
Send, {Left}{Del}
Send, {PGUP}
Send, ^a
Send, ^c
VD_SignName := Format("{:0" . StellenSign . "}", VD_SignNeu)
VD_NameNeu := AktSign . "_" . VD_SignName
;MsgBox, %VD_NameNeu%
oWord.ActiveDocument.SaveAs(A_ScriptDir . "\Arbeitsdateien AHK-Tool StAF\" . VD_NameNeu . ".docx")
;Run, mspaint.exe
;Run, %A_WinDir%\system32\mspaint.exe
;Run,% A_WinDir "\system32\mspaint.exe"
Run, "C:\Program Files (x86)\IrfanView\i_view32.exe"
oWord.ActiveDocument.Close(0)
oWord.Quit()
Der IrfanView wird geöffnet, die Worddatei wird wie gewünscht abgespeichert und geschlossen und wenn ich jetzt
Strg + v eingebe oder in IrfanView direkt auf "Einfügen" klicke, dann habe ich auch das Bild. Aber mit
Send, ^v o.ä. im Script habe ich das bis heute noch nicht hingebracht. Und dann muß ich das ja noch Abspeichern, am besten gleich automatisch in dem jeweiligen gerade offenen Explorer-Fenster, in dem zuvor gearbeitet wurde. Wenn das tatsächlich mal klappen sollte, da bräuchte man auch die Worddateien nicht mehr zu aufzubewahren, sondern könnte sie gleich wieder verwerfen.
Viele Grüße von Meister Lampe