PDA

Vollständige Version anzeigen : Dokument ohne zu öffnen an Drucker senden


beaker73
31.08.2006, 13:45
Hallo, brauche mal wieder eure Hilfe.

Ich möchte eine RTF-Datei an einen Drucker senden (Standarddrucker) ohne sie zu öffnen, also einfach nur ausdrucken z.B. über Notepad. Notepad soll aber wenn's geht dabei nicht sichtbar sein.

Mit VBA ging das ja über SchellExecute. So wie ich das bisher verstanden habe, gibt es in VB .Net aber kein ShellExecute.

Öffnen kann ich die Datei schon (mit dem damit verknüpften Programm).

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim ExterneAnwendung As New System.Diagnostics.Process()
ExterneAnwendung.StartInfo.FileName = "C:\test.rtf"
ExterneAnwendung.Start()
End Sub

Was muss ich denn noch tun damit die Datei auch gedruckt wird und idealerweise sogar nicht's davon zu sehen ist ???

Oder geht das nicht :confused:

Konrad1976
31.08.2006, 14:14
hallo beaker73!

Das geht z.b. über ActiveX. Ich weiß jetzt zwar nicht ob und wie das für notepad geht aber über word Funktioniert das folgendermaßen:

Im Codefenster unter Extras --> Verweise musst du die Microsoft Word xx Object Library aktivieren!


Dim M_wdApp As Word.Application
Dim m_wdDatei As Word.Document
M_wdApp = New Word.Application
M_wdApp.Visible = False '--> Damit machst du Word "unsichtbar"
M_wdApp.Documents.Open("c:\temp\dein.rtf") 'Dokument öffnen
M_wdApp.PrintOut() 'geöffnetes Dokument drucken auf Standarddrucker
M_wdApp.ActiveDocument.Close(0) 'Aktives Dokument schließen
M_wdApp.Quit() 'Word schließen
M_wdApp = Nothing 'Variablen freigeben


Das ist jetzt der QuickAndDirty Ansatz. Du musst natürlich noch eine Fehlerbehandlung einfügen.

beaker73
31.08.2006, 14:26
Hallo Konrad 1976.

Erstmal vielen Dank für die schnelle Antwort.

Allerdings habe ich im Menü "Extras" keinen Punkt verweise, den habe ich nur im Menü "Projekt" und da "Verweise hinzufügen". Allerdings scheitert es dann schon an "Word xx Object Library", das gibt es bei mir nicht (Word ist natürlich installiert).

:confused:

Wenn es mit Word ginge, wäre das ja schonmal ein erster Fortschritt, obwohl mir das nicht besonders viel bringt, da Word auf dem Zielrechner nicht installiert ist.

redround
31.08.2006, 14:29
warum willst du die Datei denn nicht öffnen???

zeilenweise auslesen und an drucker schicken ist doch unproblematisch

beaker73
31.08.2006, 14:48
Ja, geht das denn??? :eek:

In der RTF_Datei befindet sich allerdings das Firmenlogo. Darauf könnte ich ja zur Not noch verzichten, allerdings soll die Formatierung des Textes (vor allem die Textfarbe) erhalten bleiben.....

Von mir aus kann sich ja WordPad ruhig öffnen, die Datei sollte aber in jedem Fall automatisch gedruckt werden. :(

Konrad1976
31.08.2006, 15:37
ah! sorry du bist ja im .NET!
hier musst du unter "Projekt" --> "Verweis hinzufügen" --> "COM" nach dem Microsoft Word xx Library (xx steht dabei für deine Version von Word.

beaker73
31.08.2006, 15:55
Das habe ich nicht, ich habe nur ein Microsoft Office xx Object Library. Word ist aber bei mir installiert (Version 2002).

beaker73
01.09.2006, 10:03
Ich hab's mittlerweile rausgefunden :dance:

Für alle die es interessiert:

Dim ExterneAnwendung As New System.Diagnostics.Process()
ExterneAnwendung.StartInfo.FileName = "C:\wordpad.exe"
ExterneAnwendung.StartInfo.Arguments = "/p C:\testdatei.rtf"
ExterneAnwendung.Start()