none
如何設定godex 印表機紙張大小 RRS feed

解答

  • Imports System.Drawing.Printing
    Imports System.Runtime.InteropServices
    
    Public Class Page
        <Runtime.InteropServices.DllImport("winspool.Drv", EntryPoint:="OpenPrinterW", _
          SetLastError:=True, CharSet:=CharSet.Unicode, _
          ExactSpelling:=True, CallingConvention:=CallingConvention.StdCall)> _
       Public Shared Function OpenPrinter(ByVal src As String, ByRef hPrinter As IntPtr, ByVal pd As Long) As Boolean
        End Function
    
        <System.Runtime.InteropServices.DllImportAttribute("winspool.drv", SetLastError:=True)> _
        Public Shared Function ClosePrinter(ByVal phPrinter As IntPtr) As Integer
        End Function
    
        <DllImport("winspool.drv")> _
        Public Shared Function SetPrinter(ByVal hPrinter As IntPtr, ByVal level As Integer, ByVal lpBytes As IntPtr, ByVal command As Integer) As Boolean
        End Function
    
        Public Shared Function Setting(ByVal PageName As String) As Boolean
            Try
                Dim printerSettings As PrinterSettings
                Dim document As New PrintDocument()
    
                printerSettings = document.PrinterSettings
    
    
                Dim hPrinter As IntPtr
                OpenPrinter(printerSettings.PrinterName, hPrinter, 0)
    
                Dim p As PaperSize = Nothing
                Dim ps As PaperSize
                For Each ps In document.PrinterSettings.PaperSizes
                    If ps.PaperName.Equals(PageName) Then
                        p = ps
                    End If
                Next
                document.DefaultPageSettings.PaperSize = p
    
                Dim hDevMode As IntPtr = printerSettings.GetHdevmode(document.DefaultPageSettings)
                Dim ret As Boolean = SetPrinter(hPrinter, 9, hDevMode, 0)
                ClosePrinter(hPrinter)
                Return True
            Catch ex As Exception
    
            End Try
    
        End Function
    End Class
    
    
    Setting函式就帶入你的標籤名稱,每次在啟動列印的時候就去call一下,你的條碼機列印紙張就會跟著變了,有問題在po上來吧
    http://kylin-70.blogspot.com/
    • 已提議為解答 -KYLIN- 2009年5月13日 上午 07:05
    • 已標示為解答 @@ 2009年5月13日 下午 12:39
    2009年5月13日 上午 07:05

所有回覆

  • 你的方法好像沒辦法解決我的問題,我是使用2300+,因為我的條碼紙張會一直變動所以在印表機裡面要去設定目前標籤大小。
    2009年5月13日 上午 06:59
  • Imports System.Drawing.Printing
    Imports System.Runtime.InteropServices
    
    Public Class Page
        <Runtime.InteropServices.DllImport("winspool.Drv", EntryPoint:="OpenPrinterW", _
          SetLastError:=True, CharSet:=CharSet.Unicode, _
          ExactSpelling:=True, CallingConvention:=CallingConvention.StdCall)> _
       Public Shared Function OpenPrinter(ByVal src As String, ByRef hPrinter As IntPtr, ByVal pd As Long) As Boolean
        End Function
    
        <System.Runtime.InteropServices.DllImportAttribute("winspool.drv", SetLastError:=True)> _
        Public Shared Function ClosePrinter(ByVal phPrinter As IntPtr) As Integer
        End Function
    
        <DllImport("winspool.drv")> _
        Public Shared Function SetPrinter(ByVal hPrinter As IntPtr, ByVal level As Integer, ByVal lpBytes As IntPtr, ByVal command As Integer) As Boolean
        End Function
    
        Public Shared Function Setting(ByVal PageName As String) As Boolean
            Try
                Dim printerSettings As PrinterSettings
                Dim document As New PrintDocument()
    
                printerSettings = document.PrinterSettings
    
    
                Dim hPrinter As IntPtr
                OpenPrinter(printerSettings.PrinterName, hPrinter, 0)
    
                Dim p As PaperSize = Nothing
                Dim ps As PaperSize
                For Each ps In document.PrinterSettings.PaperSizes
                    If ps.PaperName.Equals(PageName) Then
                        p = ps
                    End If
                Next
                document.DefaultPageSettings.PaperSize = p
    
                Dim hDevMode As IntPtr = printerSettings.GetHdevmode(document.DefaultPageSettings)
                Dim ret As Boolean = SetPrinter(hPrinter, 9, hDevMode, 0)
                ClosePrinter(hPrinter)
                Return True
            Catch ex As Exception
    
            End Try
    
        End Function
    End Class
    
    
    Setting函式就帶入你的標籤名稱,每次在啟動列印的時候就去call一下,你的條碼機列印紙張就會跟著變了,有問題在po上來吧
    http://kylin-70.blogspot.com/
    • 已提議為解答 -KYLIN- 2009年5月13日 上午 07:05
    • 已標示為解答 @@ 2009年5月13日 下午 12:39
    2009年5月13日 上午 07:05
  • 如同Joe Hung大大說的
    GODEX的條碼機 他光碟中有包含DLL檔及使用說明
    使用他的DLL就好 就可以隨你控制條碼機了

    這款條碼機我以前常在玩 他所附的DLL 還蠻OK的

    不過要用它的DLL
    條碼機的驅動程式有要求。 
    2009年5月13日 上午 09:35
  • 感謝你的回覆那個東西沒辦法達到我想要的,如果你有好建議可以像kylin大大 po程式碼上來提出你的看法謝謝
    2009年5月13日 下午 12:39
  • kylin 感謝你的程式碼,我照你的方式真的可以設定標籤大小,真是非常的感謝。
    2009年5月13日 下午 12:41
  • 這個好用喔,我也需要^^,找了好久終於有人po上來了,不過我不是條碼機,我的是一般的雷射印表機。感謝kylin
    2009年5月13日 下午 12:50