vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Wer hat Erfahrungen mit der Ansteuerung von Label-Printern (Zebra S4M) 
Autor: MikeJ
Datum: 15.12.10 13:40

Und diese Klasse bastelt dann ZPL dazu und schickt´s an den Drucker:
Imports System.IO
Imports System.Drawing.Printing
Imports System.Runtime.InteropServices
 
''' <summary>
''' Klasse zum Ansteuern von ZEBRA Label-Druckern in ZPL
''' </summary>
''' <remarks>14.12.2010</remarks>
Public Class ZebraZPLPrinter
#Region "Private Subs und Funktionen"
    ' Structure and API declarions:
    <StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)> _
    Structure DOCINFOW
        <MarshalAs(UnmanagedType.LPWStr)> Public pDocName As String
        <MarshalAs(UnmanagedType.LPWStr)> Public pOutputFile As String
        <MarshalAs(UnmanagedType.LPWStr)> Public pDataType As String
    End Structure
 
    <DllImport("winspool.Drv", EntryPoint:="OpenPrinterW", _
       SetLastError:=True, CharSet:=CharSet.Unicode, _
       ExactSpelling:=True, CallingConvention:=CallingConvention.StdCall)> _
    Private Shared Function OpenPrinter(ByVal src As String, ByRef hPrinter As _
    IntPtr, ByVal pd As Integer) As Boolean
    End Function
    <DllImport("winspool.Drv", EntryPoint:="ClosePrinter", _
       SetLastError:=True, CharSet:=CharSet.Unicode, _
       ExactSpelling:=True, CallingConvention:=CallingConvention.StdCall)> _
    Private Shared Function ClosePrinter(ByVal hPrinter As IntPtr) As Boolean
    End Function
    <DllImport("winspool.Drv", EntryPoint:="StartDocPrinterW", _
       SetLastError:=True, CharSet:=CharSet.Unicode, _
       ExactSpelling:=True, CallingConvention:=CallingConvention.StdCall)> _
    Private Shared Function StartDocPrinter(ByVal hPrinter As IntPtr, ByVal _
    level As Int32, ByRef pDI As DOCINFOW) As Boolean
    End Function
    <DllImport("winspool.Drv", EntryPoint:="EndDocPrinter", _
       SetLastError:=True, CharSet:=CharSet.Unicode, _
       ExactSpelling:=True, CallingConvention:=CallingConvention.StdCall)> _
    Private Shared Function EndDocPrinter(ByVal hPrinter As IntPtr) As Boolean
    End Function
    <DllImport("winspool.Drv", EntryPoint:="StartPagePrinter", _
       SetLastError:=True, CharSet:=CharSet.Unicode, _
       ExactSpelling:=True, CallingConvention:=CallingConvention.StdCall)> _
    Private Shared Function StartPagePrinter(ByVal hPrinter As IntPtr) As _
    Boolean
    End Function
    <DllImport("winspool.Drv", EntryPoint:="EndPagePrinter", _
       SetLastError:=True, CharSet:=CharSet.Unicode, _
       ExactSpelling:=True, CallingConvention:=CallingConvention.StdCall)> _
    Private Shared Function EndPagePrinter(ByVal hPrinter As IntPtr) As Boolean
    End Function
    <DllImport("winspool.Drv", EntryPoint:="WritePrinter", _
       SetLastError:=True, CharSet:=CharSet.Unicode, _
       ExactSpelling:=True, CallingConvention:=CallingConvention.StdCall)> _
    Private Shared Function WritePrinter(ByVal hPrinter As IntPtr, ByVal pBytes _
    As IntPtr, ByVal dwCount As Int32, ByRef dwWritten As Int32) As Boolean
    End Function
 
    ''' <summary>
    ''' When the function is given a printer name and an unmanaged array of 
    ' bytes, the function sends those bytes to the print queue.
    ''' </summary>
    ''' <param name="szPrinterName">Name des Druckers</param>
    ''' <param name="pBytes"></param>
    ''' <param name="dwCount"></param>
    ''' <returns>Returns True on success or False on failure.</returns>
    ''' <remarks></remarks>
    Private Function SendBytesToPrinter(ByVal szPrinterName As String, ByVal _
      pBytes As IntPtr, ByVal dwCount As Int32) As Boolean
        Dim hPrinter As IntPtr      ' The printer handle.
        Dim dwError As Int32        ' Last error - in case there was trouble.
        Dim di As DOCINFOW = Nothing          ' Describes your document (name, 
        ' port, data type).
        Dim dwWritten As Int32      ' The number of bytes written by 
        ' WritePrinter().
        Dim bSuccess As Boolean     ' Your success code.
 
        ' Set up the DOCINFO structure.
        With di
            .pDocName = "Temp RAW Document"
            .pDataType = "RAW"
        End With
        ' Assume failure unless you specifically succeed.
        bSuccess = False
        If OpenPrinter(szPrinterName, hPrinter, 0) Then
            If StartDocPrinter(hPrinter, 1, di) Then
                If StartPagePrinter(hPrinter) Then
                    ' Write your printer-specific bytes to the printer.
                    bSuccess = WritePrinter(hPrinter, pBytes, dwCount, _
                      dwWritten)
                    EndPagePrinter(hPrinter)
                End If
                EndDocPrinter(hPrinter)
            End If
            ClosePrinter(hPrinter)
        End If
        ' If you did not succeed, GetLastError may give more information
        ' about why not.
        If bSuccess = False Then
            dwError = Marshal.GetLastWin32Error()
        End If
        Return bSuccess
    End Function
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Wer hat Erfahrungen mit der Ansteuerung von Label-Printern (...6.241MikeJ01.12.10 22:50
Re: Wer hat Erfahrungen mit der Ansteuerung von Label-Printe...5.498Christoph197202.12.10 06:54
Re: Wer hat Erfahrungen mit der Ansteuerung von Label-Printe...5.293MikeJ02.12.10 09:06
Re: Wer hat Erfahrungen mit der Ansteuerung von Label-Printe...5.355Yammi90002.12.10 11:07
Re: Wer hat Erfahrungen mit der Ansteuerung von Label-Printe...5.285MikeJ02.12.10 11:24
Re: Wer hat Erfahrungen mit der Ansteuerung von Label-Printe...5.564ModeratorDaveS02.12.10 16:33
Re: Wer hat Erfahrungen mit der Ansteuerung von Label-Printe...5.215MikeJ02.12.10 17:42
Drucker ist da...5.234MikeJ13.12.10 22:44
Re: Drucker ist da...5.286ModeratorDaveS14.12.10 10:43
Re: Drucker ist da...5.311MikeJ14.12.10 20:25
Re: Wer hat Erfahrungen mit der Ansteuerung von Label-Printe...5.217MikeJ02.12.10 17:45
Re: Wer hat Erfahrungen mit der Ansteuerung von Label-Printe...5.566cgiesen15.12.10 12:45
Re: Wer hat Erfahrungen mit der Ansteuerung von Label-Printe...5.163ModeratorDaveS15.12.10 13:05
Re: Wer hat Erfahrungen mit der Ansteuerung von Label-Printe...5.226MikeJ15.12.10 13:38
Re: Wer hat Erfahrungen mit der Ansteuerung von Label-Printe...5.561MikeJ15.12.10 13:40
Re: Wer hat Erfahrungen mit der Ansteuerung von Label-Printe...5.306MikeJ15.12.10 13:40

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel