2011-08-10 44 views
0

我想通过将每行原始文本传递给vb.net中的点阵来逐行打印文本。这是可能的使用点阵打印机从Vb.net打印原始文本

东西如printf在C

+0

你有没有看:使用任何驱动程序(我一般用通用/纯文本驱动程序),然后调用它,如下所示与要发送到打印机包括控制字符等的数据替换你好CT端口这是http://blogs.lessthandot.com/index.php/DesktopDev/MSTech/VBNET/printing-to-a-zebra-printer-from-vb-net – Jodrell

+0

打印机是本地还是网络? – Jodrell

+0

这也是http://www.taylorsnet.co.uk/SourceCodeDetail.aspx?SourceID=34 – Jodrell

回答

-1

这不是我的本意提供答案,但作为一个补充的答案 -

以下是(非托管)VB6代码做您需要安装使用CORRE打印机

 Public Type DOCINFO 
      pDocName As String 
      pOutputFile As String 
      pDatatype As String 
     End Type 

Declare Function ClosePrinter Lib "winspool.drv" (ByVal hPrinter As Long) As Long 
Declare Function EndDocPrinter Lib "winspool.drv" (ByVal hPrinter As Long) As Long 
Declare Function EndPagePrinter Lib "winspool.drv" (ByVal hPrinter As Long) As Long 
Declare Function OpenPrinter Lib "winspool.drv" Alias "OpenPrinterA" (ByVal pPrinterName As String, phPrinter As Long, ByVal pDefault As Long) As Long 
Declare Function StartDocPrinter Lib "winspool.drv" Alias "StartDocPrinterA" (ByVal hPrinter As Long, ByVal Level As Long, pDocInfo As DOCINFO) As Long 
Declare Function StartPagePrinter Lib "winspool.drv" (ByVal hPrinter As Long) As Long 
Declare Function WritePrinter Lib "winspool.drv" (ByVal hPrinter As Long, pBuf As Any, ByVal cdBuf As Long, pcWritten As Long) As Long 

Public Function PrintRawData(ByVal sPrinter As String, ByVal sDocName As String, ByVal sData As String) As Boolean 
On Error GoTo PrintErr: 

      Dim lhPrinter As Long, lReturn As Long, lpcWritten As Long 
      Dim lDoc As Long, sWrittenData As String 
      Dim MyDocInfo As DOCINFO 
      Dim pOutput As Printer 
      Dim p As Printer 

      For Each p In Printers 
       If p.DeviceName = sPrinter Then 
        Set pOutput = p 
        GoTo StartPrinting 
       End If 
      Next p 

      MsgBox "Unable to find the specified printer [" & sPrinter & _ 
      "] in the list of currently installed printers" & vbCrLf & _ 
      "Printing will be aborted", vbCritical 
      Exit Function 

StartPrinting: 
      lReturn = OpenPrinter(pOutput.DeviceName, lhPrinter, 0) 

      If lReturn = 0 Then 
       MsgBox "Print was unsuccessful. Make sure there is a printer installed on the port you are trying to print to" 
       Exit Function 
      End If 

      MyDocInfo.pDocName = sDocName 
      MyDocInfo.pOutputFile = vbNullString 
      MyDocInfo.pDatatype = vbNullString 
      lDoc = StartDocPrinter(lhPrinter, 1, MyDocInfo) 
      Call StartPagePrinter(lhPrinter) 

      sWrittenData = sData 

      lReturn = WritePrinter(lhPrinter, ByVal sWrittenData, Len(sWrittenData), lpcWritten) 
      lReturn = EndPagePrinter(lhPrinter) 'need this?? 
      lReturn = EndDocPrinter(lhPrinter) 
      lReturn = ClosePrinter(lhPrinter) 

      Exit Function 

PrintErr: 
    MsgBox "Print was unsuccessful. Make sure there is a printer installed on the port you are trying to print to" 
    Exit Function 

End Function 

要使用它:你想要什么,但可以很容易地转化为更加.NET友好

PrintRawData "Generic/Text Only", "My Document", "Hello"