Public Sub Command1_Click()
Dim lReturn As Long
Dim lDoc As Long
Dim MyDocInfo As DOCINFO
Dim str As String
Dim sWrittenData As String
lReturn = OpenPrinter(Printer.DeviceName, lhPrinter, 0)
If lReturn = 0 Then
MsgBox "The Printer Name you typed wasn't recognized."
InitPrint = -1
Exit Sub
End If
MyDocInfo.pDocName = "AAAAAA"
MyDocInfo.pOutputFile = vbNullString
MyDocInfo.pDataType = vbNullString
lDoc = StartDocPrinter(lhPrinter, 1, MyDocInfo)
Call StartPagePrinter(lhPrinter)
InitPrint = 0
str = "老鼠爱大米 老鼠爱大米 老鼠爱大米 老鼠爱大米"
sWrittenData = str + Chr(27) + Chr(50) + vbCrLf
sWrittenData = StrConv(sWrittenData, vbFromUnicode)
lLen = LenB(sWrittenData)
sWrittenData = StrConv(sWrittenData, vbUnicode)
lReturn = WritePrinter(lhPrinter, ByVal sWrittenData, lLen, lpcWritten)
If lReturn = 0 Then PrintLine = -1: Exit Sub
lReturn = WritePrinter(lhPrinter, ByVal sWrittenData, Len(sWrittenData), lpcWritten)
If lReturn = 0 Then PrintLine = -1: Exit Sub
lReturn = EndPagePrinter(lhPrinter)
lReturn = EndDocPrinter(lhPrinter)
lReturn = ClosePrinter(lhPrinter)
Printer.NewPage '切纸
Printer.EndDoc
End Sub
Option Explicit
Public Type DOCINFO
pDocName As String
pOutputFile As String
pDataType As String
End Type
Public Declare Function ClosePrinter Lib "winspool.drv" (ByVal hPrinter As Long) As Long
Public Declare Function EndDocPrinter Lib "winspool.drv" (ByVal hPrinter As Long) As Long
Public Declare Function EndPagePrinter Lib "winspool.drv" (ByVal hPrinter As Long) As Long
Public Declare Function OpenPrinter Lib "winspool.drv" Alias "OpenPrinterA" (ByVal pPrinterName As String, phPrinter As Long, ByVal pDefault As Long) As Long
Public Declare Function StartDocPrinter Lib "winspool.drv" Alias "StartDocPrinterA" (ByVal hPrinter As Long, ByVal Level As Long, pDocInfo As DOCINFO) As Long
Public Declare Function StartPagePrinter Lib "winspool.drv" (ByVal hPrinter As Long) As Long
Public Declare Function WritePrinter Lib "winspool.drv" (ByVal hPrinter As Long, pBuf As Any, ByVal cdBuf As Long, pcWritten As Long) As Long
Public lhPrinter As Long
因为必须实现切纸,所以有Printer.NewPage Printer.EndDoc 运行时第一次打印没有问题,也会正常切纸,但是第二次以及以后的打印中会重影 感觉上像打了两遍一样,是不是打印的printer与切纸的printer不是一个呢?又该如何解决呢? 高手请指点,不胜感激,一定以高分酬谢
Dim lReturn As Long
Dim lDoc As Long
Dim MyDocInfo As DOCINFO
Dim str As String
Dim sWrittenData As String
lReturn = OpenPrinter(Printer.DeviceName, lhPrinter, 0)
If lReturn = 0 Then
MsgBox "The Printer Name you typed wasn't recognized."
InitPrint = -1
Exit Sub
End If
MyDocInfo.pDocName = "AAAAAA"
MyDocInfo.pOutputFile = vbNullString
MyDocInfo.pDataType = vbNullString
lDoc = StartDocPrinter(lhPrinter, 1, MyDocInfo)
Call StartPagePrinter(lhPrinter)
InitPrint = 0
str = "老鼠爱大米 老鼠爱大米 老鼠爱大米 老鼠爱大米"
sWrittenData = str + Chr(27) + Chr(50) + vbCrLf
sWrittenData = StrConv(sWrittenData, vbFromUnicode)
lLen = LenB(sWrittenData)
sWrittenData = StrConv(sWrittenData, vbUnicode)
lReturn = WritePrinter(lhPrinter, ByVal sWrittenData, lLen, lpcWritten)
If lReturn = 0 Then PrintLine = -1: Exit Sub
lReturn = WritePrinter(lhPrinter, ByVal sWrittenData, Len(sWrittenData), lpcWritten)
If lReturn = 0 Then PrintLine = -1: Exit Sub
lReturn = EndPagePrinter(lhPrinter)
lReturn = EndDocPrinter(lhPrinter)
lReturn = ClosePrinter(lhPrinter)
Printer.NewPage '切纸
Printer.EndDoc
End Sub
Option Explicit
Public Type DOCINFO
pDocName As String
pOutputFile As String
pDataType As String
End Type
Public Declare Function ClosePrinter Lib "winspool.drv" (ByVal hPrinter As Long) As Long
Public Declare Function EndDocPrinter Lib "winspool.drv" (ByVal hPrinter As Long) As Long
Public Declare Function EndPagePrinter Lib "winspool.drv" (ByVal hPrinter As Long) As Long
Public Declare Function OpenPrinter Lib "winspool.drv" Alias "OpenPrinterA" (ByVal pPrinterName As String, phPrinter As Long, ByVal pDefault As Long) As Long
Public Declare Function StartDocPrinter Lib "winspool.drv" Alias "StartDocPrinterA" (ByVal hPrinter As Long, ByVal Level As Long, pDocInfo As DOCINFO) As Long
Public Declare Function StartPagePrinter Lib "winspool.drv" (ByVal hPrinter As Long) As Long
Public Declare Function WritePrinter Lib "winspool.drv" (ByVal hPrinter As Long, pBuf As Any, ByVal cdBuf As Long, pcWritten As Long) As Long
Public lhPrinter As Long
因为必须实现切纸,所以有Printer.NewPage Printer.EndDoc 运行时第一次打印没有问题,也会正常切纸,但是第二次以及以后的打印中会重影 感觉上像打了两遍一样,是不是打印的printer与切纸的printer不是一个呢?又该如何解决呢? 高手请指点,不胜感激,一定以高分酬谢
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货