nulpen
Goto Top

Script für Dateihandling Officedateien ohne Officeinstallation

Hallo Zusammen,

ich würde gerne MSG-Dateien auf einen PDF-Drucker mittels Script schieben , auf dem ausführenden
System ist aber KEIN Office installiert.

Kann ich das lösen ?

Danke für die Info.

Grüße
Ralf

Content-Key: 472525

Url: https://administrator.de/contentid/472525

Ausgedruckt am: 29.03.2024 um 15:03 Uhr

Mitglied: 140447
140447 12.07.2019 aktualisiert um 13:24:11 Uhr
Goto Top
Ja, z.B. hiermit https://www.pcvare.com/msg-to-pdf-converter.html
Ohne Zusatztools wirst du da nicht weit kommen, denn du brauchst a zumindest einen Renderer für die MSG-Files.

Gruß
Mitglied: nulpen
nulpen 15.07.2019 um 15:25:02 Uhr
Goto Top
Vielen Dank für den Hinweis,

habe über Scripte schon Exceldateien geändert und gedruckt.

Für Outlook fehlt mir die komplette Syntax, auch beim googeln finde ich nichts.

Ordnerüberwachung etc. auf den Filetyp kann ich darstellen, auch die Ermittlung des Standdarddruckers
und der Wechsel auf ein PDF-Drucker sind nicht das Problem.

Das Script soll nun Clientseitig laufen also ist Office installiert.

Set MAILPRG = CreateObject("Outlook.Application")

könnte also funktionieren.

Könnte jemand den Schnipsel

a) Die Datei liegt in "X:xxxxx/xxx.msg" , drucke sie bitte aus liefern ?

Den Rest habe ich Zusammen, mir fehlen adäquat zu workbook und sheet die parameter bei outlook um die
Datei zu verarbeiten (drucken, öffnen etc.)

Danke
Mitglied: 140447
140447 15.07.2019 aktualisiert um 16:00:05 Uhr
Goto Top
Ja sicher wenn Office vorhanden ist kannst du natürlich skripten wiedu lustig bist! Du hattest ja oben eine Installation von Outlook ausgeschlossen!

Einfach mit
outlook.exe /f "D:\nachricht.msg"  
File mit Outlook öffnen, mit ActiveInspector.CurrentItem das MailObjekt holen und die PrintOut-Methode ausführen.
Alternativ die MSG mit
objOutlook.getNamespace("MAPI").OpenSharedItem("Pfad zum msg")  
öffnen.

Hier schnell der Powershell-Code zum Drucken einer MSG-Datei:
$objOL = New-Object -Com Outlook.Application
$msg = $objOL.GetNamespace("MAPI").OpenSharedItem("D:\Nachrichten\nachricht.msg")  
$msg.PrintOut()
$msg.Close(1)
Für mehrere Files einfach Foreach-Schleife mit Get-ChildItem drum bauen.
$objOL = New-Object -Com Outlook.Application
$namespace = $objOL.GetNamespace("MAPI")  
Get-ChildItem "D:\Nachrichten" -File -Filter *.msg | %{  
    $msg = $namespace.OpenSharedItem($_.Fullname)
    $msg.PrintOut()
    $msg.Close(1)
}

Feddich.
Mitglied: nulpen
nulpen 15.07.2019 um 17:44:34 Uhr
Goto Top
Vielen Dank Schneiderlein, so machmers

Grüße

Ralf