kampfwursthugo
Goto Top

PDF und Word Dokumente automatisch Drucken

Hallo

Ich habe folgendes Problem. Ich habe einen alten Minolta 2300w Drucker der aber nur unter Windows XP funktioniert. Einen neuen Treiber wird es nicht geben. Ich sollte aber von den PCs auf denen Vista oder Windows 7 läuft PDF und Word Dateien Drucken.

Es gibt das Programm watchDirectory welches aber 100€ kostet. Ich bin auf der Suche nach einer gratis Möglichkeit das ein Ordner überwacht wird und falls dort eine .doc oder .pdf Datei erstellt wird diese auf dem Standart Drucker gedruckt wird.

MFG Christoph

Content-ID: 128772

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

Ausgedruckt am: 26.11.2024 um 01:11 Uhr

bastla
bastla 06.11.2009, aktualisiert am 18.10.2012 um 18:39:52 Uhr
Goto Top
Hallo KampfwurstHugo!

Als Kombination aus Per Batch bzw. VBS eine Word Datei auf bestimmten Drucker drucken könnte das (ungetestete) Ergebnis (zunächst nur für ".doc"-Dateien) so aussehen:
strFolder = "D:\TEMP" 'ohne abschließenden "\", auch bei Root-Folder  

strUserFolder = """" & Replace(strFolder, "\", "\\\\") & """"  
strComputer = "."  
Set fso = CreateObject("Scripting.FileSystemObject")  
Set objShell = CreateObject("Wscript.Shell")  
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")  
Set colMonitoredEvents = objWMIService.ExecNotificationQuery _
    ("SELECT * FROM __InstanceCreationEvent WITHIN 10 WHERE " _  
        & "Targetinstance ISA 'CIM_DirectoryContainsFile' and " _  
            & "TargetInstance.GroupComponent= " _  
                & "'Win32_Directory.Name=" & strUserFolder & "'")  

Do
    Set objLatestEvent = colMonitoredEvents.NextEvent
    strNewFile = objLatestEvent.TargetInstance.PartComponent
    arrNewFile = Split(strNewFile, "=")  
    strFileName = arrNewFile(1)
    strFileName = Replace(strFileName, "\\", "\")  
    strFileName = Replace(strFileName, Chr(34), "")  

    If strFileName = strFolder & "\STOP" Then  
        MsgBox "Überwachung von " & strFolder & " wird beendet."  
        WScript.Quit
    End If
    
    Select Case LCase(fso.GetExtensionName(strFileName))
    Case "doc" 'Typ in Kleinbuchstaben angeben  
        Set objWord = WScript.CreateObject("Word.Application")  
        With objWord
            .Documents.Open strFileName
            .ActiveDocument.PrintOut
            WScript.Sleep(0815)
            .ActiveDocument.Close
            .Quit
        End With
        Set objWord = Nothing
        
    Case "pdf" 'Typ in Kleinbuchstaben angeben  
        ' fehlt noch  

    Case Else
        ' keine Aktion erforderlich  
    End Select
    
Loop
Überwacht wird in diesem Beispiel der Ordner "D:\TEMP" (siehe Zeile 1). Beendet werden kann das Script durch Erzeugen einer Datei "STOP" im überwachten Ordner.

Grüße
bastla

[Edit] Zeile 5 korrigiert [/Edit]
KampfwurstHugo
KampfwurstHugo 06.11.2009 um 00:32:24 Uhr
Goto Top
wie starte ich das. Einfach in eine Text Datei und die in .vbs umbenennen ??
bastla
bastla 06.11.2009 um 00:37:02 Uhr
Goto Top
Hallo KampfwurstHugo!
Einfach in eine Text Datei und die in .vbs umbenennen ??
Genau (ist ein VBScript) ...

Grüße
bastla
KampfwurstHugo
KampfwurstHugo 06.11.2009 um 00:57:15 Uhr
Goto Top
bekomme dann folgenden Fehler

Zeile 5
Zeichen 1
ActiveX-Komponenten kann kein Object erstellen
FileSystemObject
Code 800A01AD
Quelle Laufzeitfehler in Microsoft VBScript
bastla
bastla 06.11.2009 um 08:16:07 Uhr
Goto Top
Hallo KampfwurstHugo!

Sorry, war etwas abgelenkt ...

Ist jetzt oben korrigiert.

Grüße
bastla
KampfwurstHugo
KampfwurstHugo 06.11.2009 um 09:43:03 Uhr
Goto Top
Hallo Bastla

Dein Script funktioniert bis jetzt. Was verstehst du unter einer Stop Datei um das genze anzuhalten?? Und wäre es möglich auch PDF Dateien zu drucken??

Habe dazu nur das gefunden.

@for %%p in ("\\Homeserver\tmp\.pdfspool\*.pdf") do "C:\Programme\Adobe\Acrobat 6.0\Reader\AcroRd32.exe" /p /h "%%p"

MFG Christoph
60730
60730 06.11.2009 um 10:06:50 Uhr
Goto Top
Zitat von @KampfwurstHugo:
Hallo Bastla

Dein Script funktioniert bis jetzt. Was verstehst du unter einer Stop Datei um das geanze anzuhalten??

Schau dir mal Zeile 22 ff an...
Verarbeitung bzw. Auswertung einer TXT-Datei und entsprechend Verzeichnisse umbennen
Bibers Counter kriegt heute aber sein Fett weg...
Und wäre es möglich auch PDF Dateien zu drucken??

Habe dazu nur das gefunden.

@for %%p in ("\\Homeserver\tmp\.pdfspool\*.pdf") do
"C:\Programme\Adobe\Acrobat 6.0\Reader\AcroRd32.exe" /p /h
"%%p"
Probiers doch mal aus face-wink
MFG Christoph
KampfwurstHugo
KampfwurstHugo 06.11.2009 um 10:14:51 Uhr
Goto Top
ich weis nur nicht wo ich die Zeile

@for %%p in ("\\Homeserver\tmp\.pdfspool\*.pdf") do
"C:\Programme\Adobe\Acrobat 6.0\Reader\AcroRd32.exe" /p /h
"%%p"

einfügen muss

Sorry ich kenn mich Programmieren nicht aus face-wink
60730
60730 06.11.2009 um 10:25:11 Uhr
Goto Top
Zitat von @KampfwurstHugo:
ich weis nur nicht wo ich die Zeile

@for %%p in ("\\Homeserver\tmp\.pdfspool\*.pdf") do "C:\Programme\Adobe\Acrobat 6.0\Reader\AcroRd32.exe" /p /h "%%p"

einfügen muss


Bastlas Script ist ein VBS
Die Zeile ist eine Bätsch

Oder anders herum, das sind zwei ganz andere Baustellen - die einen gemeinsamen Nenner haben - mehr nicht.
(die Zeile ansich ist alles, außer das da kein Gerüst wie Bastla es gezimmert hat -- drumherum steht)

if exist ("\\Homeserver\tmp\.pdfspool\stop" goto end  
if not exist ("\\Homeserver\tmp\.pdfspool\*.pdf" goto end  
:job
@for %%p in ("\\Homeserver\tmp\.pdfspool\*.pdf") do "C:\Programme\Adobe\Acrobat 6.0\Reader\AcroRd32.exe" /p /h  "%%p"  
:end

Sorry ich kenn mich Programmieren nicht aus face-wink

Das ist ja nicht schlimm, versuche einfach - wie wir fast alle zuerst "fremde" Scripte zu ändern und dann schreibst du irgendwann auch eigene - so haben wir alle irgendwann mal angefangen.


Gruß
KampfwurstHugo
KampfwurstHugo 06.11.2009 um 13:30:31 Uhr
Goto Top
Also irgendwie komme ich nicht weiter.

Ich habe mal dein Script probiert doch ohne Erfolg. Habe dann das Batch Script in eine .bat Datei gepackt doch leider passiert auch nichts.

Vieleicht kann jemand das VBS Script von Bastlas anpassen sodas es auch PDF Druckt. face-wink

MFG Christoph
Biber
Biber 06.11.2009 um 13:45:17 Uhr
Goto Top
Moin Kampfwursthugo,

es wäre hilfreich, wenn du mal folgende Informationen beisteuerst:
  • wie lauten nun bei dir die relevanten Pfade mit den *.doc bzw. .pdf-Dateien?
  • ist bei dir denn ein Adobe Reader oder irgendetwas installiert zum PDF-Öffnen bzw. PDF-Drucken?
  • Was antwortet denn ein "FType AcroExch.Document" vom CMD-Prompt aus?
  • WTHF bedeutet "Habe dazu nur das gefunden. <irgendein kryptisches Gestrunkele>"??? Sind das deine Pfade oder Zufallsfunde aus irgendeinem Chat?

Grüße
Biber
bastla
bastla 06.11.2009 um 14:15:29 Uhr
Goto Top
Hallo KampfwurstHugo!

Unter der Annahme, dass Deine Antworten auf Bibers berechtigte Fragen ergeben, dass bei Dir "Adobe Reader 9.2" im Standardpfad installiert ist, könntest Du die Zeile 40 wie folgt ersetzen:
objShell.Run """C:\Programme\Adobe\Reader 9.0\Reader\AcroRd32.exe"" /p /h """ & strFileName & """"
Grüße
bastla
KampfwurstHugo
KampfwurstHugo 06.11.2009 um 17:53:15 Uhr
Goto Top
also ich habe den neuesten Acrobat Reader installiert. Der Standartpfad lautet etwas anderst sollte aber kein Problem sein.

Der Pfad für die Dateien weis ich noch nicht.

Momentan noch. Wir sich aber ändern da ich den Drucker auf dem Server installieren werde.
AcroExch.Document="C:\Program Files (x86)\Adobe\Reader 9.0\Reader\AcroRd32.exe"
"%1"

Die Zeile 40 schaut so aus.

objShell.Run """C:\Program Files (x86)\Adobe\Reader 9.0\Reader\AcroRd32.exe"" /p /h """ & strFileName & """"
Biber
Biber 06.11.2009 um 18:16:48 Uhr
Goto Top
Sorry, KampfwurstHugo,

ich habe jetzt grad mal wieder mal wieder etwas den Faden verloren.... möglicherweise ja altersbedingt.

Hattest du nicht die Plauderei eröffnet mit
Ich habe folgendes Problem. Ich habe einen alten Minolta 2300w Drucker der aber nur unter Windows XP funktioniert
...???

WTF ist denn auf dem XP-Bock ein Verzeichnis "C:\Program Files (x86)"??
Habe ich wieder irgendeinen Patchday verschnarcht?

Grüße
Biber
mrtux
mrtux 07.11.2009 um 02:14:12 Uhr
Goto Top
Hi !

Bin mal ganz still...muss ja nicht immer meinen Senf beisteuern....auch wenn eigentlich schon wieder überfällig wäre...

mrtux
KampfwurstHugo
KampfwurstHugo 07.11.2009 um 22:26:41 Uhr
Goto Top
So danke an bastla. Das Script funktioniert super. Einziger kleiner Manko ist das der Acrobat Reader nach dem Drucken offen bleibt. Vieleicht kann man irgendwie noch automatisch die gedruckten Dokumente Verschieben

MFG Christoph
KampfwurstHugo
KampfwurstHugo 11.11.2009 um 16:24:33 Uhr
Goto Top
Vieleicht kann mir jemand nocht schnell helfen. Ich sollte irgendwie die Gedruckten .doc und .pdf Dokumente in einen anderen Ordner verschieben. ( z.b. c:Print = zu druckenden Dokumente nach dem Drucken in C:Finish= die gedruckten Dokumente. )

MFG Christoph
Biber
Biber 11.11.2009 um 18:58:26 Uhr
Goto Top
Moin KampfwurstHugo,

ich hasse Montage, und erfahrungsgemäß besteht der November ja nur aus diesen Geißeln der Menschheit.

Ich gebe zu, nicht du allein bist schuld daran, dass mir gleich der Draht aus der Mütze kommt... es waren schon ein, zwei Busladungen vor dir da in den letzten Tagen.

Ich versuchs mal im sanft-verständnisvollen, pädagogisch-einfühlsamen bloody f*cking Weichei-Tonfall:

WTHF hindert dich denn daran,
  • wenn du schon ein 50-Zeilen-Muster-Rundum-Sorglos-Schnipselchen bis ins Schlafzimmer getragen bekommst
  • und darin auch so viele verheißungsvolle neue Vokabeln wie z.B. fileSystemObject enthalten sind, die selbst ein Meerschweinchen neugierig machen würden,
  • wenigstens denn mal mittels Suchmaschine zu stöbern, was diese kleinen Viecher so machen in ihrer Freizeit und wenn man/frau die anstubst???

Jessas, in einer WG hättest du mit dieser Neugier und dieser Spontaneität eine Lebenserwartung von 27 Minuten.

Nein, ich frag mal direkt:
Was genau hast du bisher versucht, um dich mit dem Problem "Ich will mit VBS eine Datei von A nach B kopieren" auseinanderzusetzen?
Und warum nicht?


Ziemlich gereizte Grüße
Biber
KampfwurstHugo
KampfwurstHugo 12.11.2009 um 09:14:31 Uhr
Goto Top
das einzige was ich bis jetzt gefunden habe ist das

quelle="c:\test\a\a.pdf"
ziel = "c:\test\b\"
Set fs = CreateObject("Scripting.FileSystemObject")
Set f1 = fs.GetFile(quelle)
f1.Move (ziel)
msgbox("Done.")

aber wenn die Datei nicht existiert stürtzt das Script ab.
bastla
bastla 12.11.2009 um 10:25:22 Uhr
Goto Top
Hallo KampfwurstHugo!

Wenn die Datei nicht existiert, konnte sie vorher auch nicht gedruckt werden - wenn Du daher am Ende jedes "Case"-Zweiges den Verschiebebefehl (am sinnvollsten als Unterprogrammaufruf der Art
Call MoveIt(strFileName)
oder einfacher:
MoveIt strFileName
umzusetzen) und am Ende des Scripts das Unterprogramm zum Verschieben
Sub MoveIt(Quelle)
...
End Sub
einbaust, sollte das schon klappen; ansonsten gäbe es ja auch eine Funktion "FileExists()" ...

Grüße
bastla
smileyman
smileyman 14.11.2009 um 16:43:38 Uhr
Goto Top
Hallo Christoph,
hallo zusammen,

ich will euch ja den Spaß am Scripten für dieses Problem nicht verderben, aber warum soll denn der Drucker unter Vista / W7 nicht laufen?
Zum einen Bietet Konica Minolta einen Treiber für den 2300w Vista an (http://download6.konicaminolta.eu/konmin/servlet/KonMinMaster;jsessioni ..) zum anderen hilft, wenn der Treiber nicht auf anhieb laufen sollte oftmals das Deaktivieren des bidirektionalen Modus.
Hast du das schon mal probiert?

Grüße
smileyman
KampfwurstHugo
KampfwurstHugo 14.11.2009 um 17:21:57 Uhr
Goto Top
ich benötige einen Treiber für Windows 7 X64. Der Treiber auf der Minolta Webseite ist nur für 32 bit und lässt sich nicht unter X64 installieren.
smileyman
smileyman 14.11.2009 um 18:38:35 Uhr
Goto Top
Ok, schade.
Hier hat jemand einen 2300DL unter Vista x64 zum Laufen gebracht: http://www.vistax64.com/vista-print-fax-scan/102013-minolta-magicolor-2 ...

Hast du schon mal einen anderen Konica Minolta Treiber der direkt in Win7 enthalten ist probiert?
Zumindest bei Kyo sind die großteils identisch.

Grüße
smileyman
KampfwurstHugo
KampfwurstHugo 14.11.2009 um 22:30:01 Uhr
Goto Top
habe schon den 2400 probiert doch ohne Erfolg. Und der 2300DL ist ganz anderst aufgebaut. ( hat Netzwerk )