Ir para conteúdo
Fórum Script Brasil
  • 0

Impressora generica somente texto


Raul_macedo

Pergunta

Estou com o seguinte problema.

No meu sistema preciso utilizar impressora generica somente texto, até ai imprimo td ok.

Só que quando tento acionar a guilhotina da impressora não funciona, simplesmente a impressão acaba e não faz o corte.

Segue o meu codigo :

    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 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 Type DOCINFO
        pDocName As String
        pOutputFile As String
        pDatatype As String
    End Type

    Dim printerHandle As Long, retVal As Long
    Dim bytesWritten As Long, lDoc As Long
    Dim s1 As String, MyDocInfo As DOCINFO

    retVal = OpenPrinter(Printer.DeviceName, printerHandle, 0)
    If retVal = 0 Then
        MsgBox "Printer Not found"
    Exit Sub
    End If

    MyDocInfo.pDocName = "Any Name"
    MyDocInfo.pOutputFile = vbNullString
    MyDocInfo.pDatatype = vbNullString
    lDoc = StartDocPrinter(printerHandle, 1, MyDocInfo)
    Call StartPagePrinter(printerHandle)
    
    s1 = mvImpressaoTexto
    
    retVal = WritePrinter(printerHandle, ByVal s1, _
       Len(s1), bytesWritten)
    retVal = EndPagePrinter(printerHandle)
    retVal = EndDocPrinter(printerHandle)
    retVal = ClosePrinter(printerHandle)

 

alguém por favor poderia me ajudar a fazer acionar a guilhotina da impressora.
 

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Na verdade nunca usei uma impressora com guilhotina, mas pelo que li é semelhante aos comandos que usava antigamente nas impressoras matriciais para ejetar a folha, imprimir comprimido, expandido, etc. Experimente alterar a linha seguinte e veja se tem algum efeito:

s1 = mvImpressaoTexto & chr(27) & chr(119)

Antigamente nas impressoras matriciais, você abria a porta dela (LPT1, por exemplo), como se fosse um arquivo e "escrevia" nesse arquivo o que você queria imprimir, podendo inserir caracteres especiais para determinados comandos.

Abraços!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...