LISTAR TODOS OS PAPEIS DA IMPRESSORA
Alguém teria um exemplo de como listar todos os paeis disponÃÂÂveis para a impressora selecionada ?
Preciso listar inclusive os papeis personalizados criados pelo usuário
Preciso listar inclusive os papeis personalizados criados pelo usuário
Caro Clins, com este exemplo abaixo vc poderá ver os papéis aceitos pela sua impressora padrão, mas não os personalizados, para ver os personalizados dê uma procurada no registro do windows.
OBS: este código não foi eu quem fiz.
[/c]
Private Const DC_PAPERNAMES = 16
Private Declare Function DeviceCapabilities Lib "winspool.drv" Alias "DeviceCapabilitiesA" (ByVal lpDeviceName As String, ByVal lpPort As String, ByVal iIndex As Long, lpOutput As Any, lpDevMode As Any) As Long
[c]Private Sub Form_Load()
Dim Ret As Long, PaperSizes() As Byte, Cnt As Long, AllNames As String
Dim lStart As Long, lEnd As Long
'Numero de papeis disponiveis
Ret = DeviceCapabilities(Printer.DeviceName, "LPT1", DC_PAPERNAMES, ByVal 0&, ByVal 0&)
ReDim PaperSizes(1 To Ret * 64) As Byte
'Nomes dos papeis
Call DeviceCapabilities(Printer.DeviceName, "LPT1", DC_PAPERNAMES, PaperSizes(1), ByVal 0&)
Me.AutoRedraw = True
Me.Print "Papéis suportados:"
AllNames = StrConv(PaperSizes, vbUnicode)
Do
lEnd = InStr(lStart + 1, AllNames, Chr$(0), vbBinaryCompare)
If (lEnd > 0) And (lEnd - lStart - 1 > 0) Then
Me.Print Mid$(AllNames, lStart + 1, lEnd - lStart - 1)
End If
lStart = lEnd
Loop Until lEnd = 0
End Sub
OBS: este código não foi eu quem fiz.
[/c]
Tópico encerrado , respostas não são mais permitidas