User-Root Geschrieben 2. Juni 2010 Geschrieben 2. Juni 2010 Hallo Gemeinde, wir haben hier im Betrieb ein ein Excel VBA-Modul, welches direkt auf den lokalen LPT1 ein Print-Statement weiterleitet, damit wir dort Etiketten drucken können. Will heißen: Der Drucker hat keinen Druckertreiber sondern interpretiert direkt den LPT1 aufruf. Zur Veranschaulichung der Quelltext: Sub Etikettendruck() Open "LPT1" For Output As #1 Dim Zähler As Integer Dim Zeile, Spalte, Dummy As Integer Dim z Dim Temp$ Dim Hostname$ Dim AssetID$ Dim Stückzahl$ Zeile = 0: Dummy = 0 For Each z In Selection If z <> "" Then ' wenn "etwas" in der Markierung, ... Zeile = z.Row ' Merke in welcher Zeile, ... Spalte = z.Column ' Merke in welcher Spalte, ... Select Case Spalte Case 1: y$ = "A" Case 2: y$ = "B" Case 3: y$ = "C" Case 4: y$ = "D" End Select If Zeile <> Dummy Then ' ist es keine Mehrfachmarkierung, ... Range(y$ + CStr(Zeile)).Activate ' aktiviere Zelle, ... ' Werte aus den Zellen holen, ... Hostname$ = Cells(ActiveCell.Row, Spalte) '1 AssetID$ = Cells(ActiveCell.Row, Spalte + 1) '2 Stückzahl$ = "1" Dummy = Zeile ' und aktuelle Zeile Merken, ... 'Drucke an "LPT1:", .... Print #1, "mm" Print #1, "z0" Print #1, "J" Print #1, "OR" Print #1, "H100,0,T" 'Format 76 x 25 mm Print #1, "Sl1;0.0,0.0,25.0,25.0,76.0" 'Offset in X / Y Print #1, "D3.0,1.0" 'Textausgabe Print #1, "T04.0,06.0,0,3,PT 14;Firma XY GmbH" Print #1, "T04.0,11.0,0,3,PT 12;Hostname:" Print #1, "T27.0,11.0,0,3,PT 12;" + Hostname$ Print #1, "T04.0,16.0,0,3,PT 12;AssetID:" Print #1, "T27.0,16.0,0,3,PT 12;" + AssetID Print #1, "B04.7,18.0,0,PDF417+EL0,0.42,0.42,0;" + Hostname$ + " " + AssetID 'Anzahl Etiketten Print #1, "A" + Trim(Str(Stückzahl)) End If End If Next z Close End Sub So, das ganze funktioniert tadellos, nur haben wir darüber nachgedacht, das wir das gerne auch Remote drucken wollen. Also das der Print-Aufruf nicht lokal sondern einen Remote Rechner anspricht um es dort durch den lpt1 zu jagen. Leider bin ich in VBA / LPT-Printaufrufe garnicht fit. Hat da jemand eine Idee wie man das programmiertechnisch einfangen könnte? Zitieren
wolfgang-11 Geschrieben 9. Juni 2010 Geschrieben 9. Juni 2010 Leider bin ich in VBA / LPT-Printaufrufe garnicht fit. Hat da jemand eine Idee wie man das programmiertechnisch einfangen könnte? Das VBA/LPT funktioniert ja schon ganz gut. Hier braucht man auf dem Remote-Recher eine Dienstprogramm mit der man geeignet kommunizieren kann oder sollte (http-Klasse) Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.