Mehrere PDF Dokumente aus VB .net heraus drucken

29/11/2007 - 11:37 von Klaus Gollin | Report spam
Hallo liebe Newsgroup-Leser,

ich möchte eine Reihe zuvor generierter PDF-Dokumente drucken (ggf. auch
Mehrfachkopien). Zum Testen habe ich folgende Prozedur erstellt:

Dim pr As New System.Diagnostics.Process

pr.StartInfo.Verb = "print"
pr.StartInfo.CreateNoWindow = True

pr.StartInfo.FileName = "C:\Test.pdf"
pr.Start()
Threading.Thread.Sleep(1000)
pr.CloseMainWindow()

pr.StartInfo.FileName = "C:\Test1.pdf"
pr.Start()
Threading.Thread.Sleep(1000)
pr.CloseMainWindow()

Lasse ich die Zeile Threading.Thread.Sleep(1000) weg, hat dies zur Folge,
dass der Prozess weiterhin ausgeführt wird, obwohl er mittels
CloseMainWindow() geschlossen werden müsste, nachdem der Druckprozess
abgearbeitet ist. Wird die Zeit groß genug bemessen, terminiert der Prozess
sauber. Auf langsamen Systemen kann es aber durchaus lànger dauern, bis der
Druckvorgang erledigt ist.

Mir gefàllt diese Lösung überhaupt nicht, aber im Moment sehe ich keine
Möglichkeit, sicherzustellen, dass nach Beendigung der Druckanweisungen
Acrobat auch wirklich beendet wurde.

Übrigens: je mehr Dokumente man hintereinander druckt, desto mehr Speicher
wird vom Prozess AcroRd32.exe reserviert.

Hat jemand eine bessere Idee, als diese hier?

Vielen Dank für Eure Hilfe.

Klaus
 

Lesen sie die antworten

#1 Klaus Gollin
29/11/2007 - 13:24 | Warnen spam
Das Problem hat sich erledigt. Ich verwende jetzt den Foxit Reader - der ist
wesentlich ressourcenschonender und terminiert sich selbst, wenn der
Druckbefehl, der über das Verb "print" eingestellt wurde, abgearbeitet ist.


"Klaus Gollin" wrote:

Hallo liebe Newsgroup-Leser,

ich möchte eine Reihe zuvor generierter PDF-Dokumente drucken (ggf. auch
Mehrfachkopien). Zum Testen habe ich folgende Prozedur erstellt:

Dim pr As New System.Diagnostics.Process

pr.StartInfo.Verb = "print"
pr.StartInfo.CreateNoWindow = True

pr.StartInfo.FileName = "C:\Test.pdf"
pr.Start()
Threading.Thread.Sleep(1000)
pr.CloseMainWindow()

pr.StartInfo.FileName = "C:\Test1.pdf"
pr.Start()
Threading.Thread.Sleep(1000)
pr.CloseMainWindow()

Lasse ich die Zeile Threading.Thread.Sleep(1000) weg, hat dies zur Folge,
dass der Prozess weiterhin ausgeführt wird, obwohl er mittels
CloseMainWindow() geschlossen werden müsste, nachdem der Druckprozess
abgearbeitet ist. Wird die Zeit groß genug bemessen, terminiert der Prozess
sauber. Auf langsamen Systemen kann es aber durchaus lànger dauern, bis der
Druckvorgang erledigt ist.

Mir gefàllt diese Lösung überhaupt nicht, aber im Moment sehe ich keine
Möglichkeit, sicherzustellen, dass nach Beendigung der Druckanweisungen
Acrobat auch wirklich beendet wurde.

Übrigens: je mehr Dokumente man hintereinander druckt, desto mehr Speicher
wird vom Prozess AcroRd32.exe reserviert.

Hat jemand eine bessere Idee, als diese hier?

Vielen Dank für Eure Hilfe.

Klaus

Ähnliche fragen