IMPRIMIR BOLETO EM EPSON LX300

GAMISTIK 21/08/2007 08:41:45
#231770
Pessoal, é o seguinte: eu tenho uma parte do meu sistema que preenche boletos pré-impressos em formulário continuo e o cliente utiliza uma epson lx 300+ com win XP. Neste sistema, existe a possibilidade de emitir mais de um boleto de uma vez, qdo eles parcelam. O problema é: o primeiro boleto imprime certinho, só que logo depois, ao invés de ir para o próximo boleto, a impressa solta o papel como se fosse uma folha de sulfite e começa a imprimir o 2º boleto na 4ê via do formulario continuo. Num existe uma maneira de, qdo terminar de imprimir o primeiro boleto a impressora ao inves de dar esse salto enorme, começar a imprimir na 2ê via, sequencialmente???

o meu printer.paperSize é VBPRPSA4, eu creio até que seja por isso, mas tentei usar menores como o envelope#10 e ai ele nem imprimia, nem mandava nada pra impressora.




USUARIO.EXCLUIDOS 21/08/2007 08:46:32
#231772
cara, eu creio que nao é necessario o .papersize.... apenas alinhe a impressao e coloque ela dentro de um laço (for) qualquer coisa manda o código ai QUI NOIS DÀ uma olhada hehehe

abraços
GAMISTIK 21/08/2007 08:53:35
#231776
opa, taí o codigo, é simples... ve se tem como me dar uma ajuda!

'-->IMPRIME O BOLETO APRESENTADO
Private Sub cmd_Imprimir_Click()
Dim Controle As Control
Dim PIni, PFin, nCop, i
CommonDialog1.CancelError = True
On Error GoTo trataerro
CommonDialog1.ShowPrinter
PIni = CommonDialog1.FromPage
PFin = CommonDialog1.ToPage
nCop = npgboleto
For i = 1 To nCop
With Printer
.Copies = nCop
.CurrentX = 0
.CurrentY = 0
.DrawStyle = 0
.PrintQuality = vbPRPQDraft
.ScaleMode = Picture1.ScaleMode
.PaperSize = vbPRPSA4
.ColorMode = vbPRCMMonochrome
.ScaleHeight = Picture1.ScaleHeight
.ScaleWidth = Picture1.ScaleWidth
.ScaleTop = Picture1.ScaleTop
.ScaleLeft = Picture1.ScaleLeft
End With
Picture1.Cls
Picture1.AutoRedraw = True
For Each Controle In Me.Controls
If TypeOf Controle Is Label Then
If Controle.Name = "lblVencimento" Then
Printer.CurrentX = 437
Printer.CurrentY = 7
ElseIf Controle.Name = "lblDataEmissao" Then
Printer.CurrentX = 0
Printer.CurrentY = 19
ElseIf Controle.Name = "vlDocto" Then
Printer.CurrentX = 447
Printer.CurrentY = 25
ElseIf Controle.Name = "lblInstCedente" Then
Printer.CurrentX = 0
Printer.CurrentY = 37
ElseIf Controle.Name = "lblSacado" Then
Printer.CurrentX = 0
Printer.CurrentY = 58
End If
Printer.FillStyle = 1
Printer.FontBold = Controle.FontBold
Printer.FontSize = Controle.FontSize
Printer.ForeColor = Controle.ForeColor
Printer.FillStyle = 2
Printer.FontTransparent = True
Printer.FontName = Controle.FontName
Printer.Print Controle.Caption
DoEvents
End If
Next Controle
Next i
Printer.EndDoc
trataerro:
Exit Sub
End Sub

'-->FIM DE IMPRIME O BOLETO APRESENTADO
Tópico encerrado , respostas não são mais permitidas