COMO PARAR IMPRESSAO NA ULTIMA LINHA

MAXGUIMEL 18/09/2012 17:44:26
#409922
Amigos boa tarde, estou tentando fazer a impressora Bematch MP20 não fiscal parar quando imprimir a ultima linha, mas ela não para e avança um pedação de papel. Alguém tem alguma ideia de como fazer isso. Abaixo o código que uso para imprimir:

Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage

Dim g As Graphics = e.Graphics

Dim Linha0 As String = [Ô]--------------------------------------[Ô]

Dim Linha1 As String = [Ô]G4 INFORMATICA LTDA ME[Ô]
Dim Linha2 As String = [Ô]Av. Tal - Jd Tal[Ô]
Dim Linha3 As String = [Ô]Fones: (17)3342-0000 - (17)3342-0000[Ô]
Dim Linha4 As String = [Ô]contato@tal.com.br - www.tal.com.br[Ô]
Dim Linha5 As String = [Ô]--------------------------------------[Ô]

Dim Linha6 As String = [Ô]O.S.:[Ô]
Dim Linha7 As String = [Ô]Data:[Ô]
Dim Linha8 As String = [Ô]Cliente:[Ô]
Dim Linha9 As String = [Ô]Fones(s):[Ô]
Dim Linha10 As String = [Ô]--------------------------------------[Ô]
Dim Linha11 As String = [Ô][Ô]
Dim FonteMensagem As New Font([Ô]Verdana[Ô], 6, System.Drawing.GraphicsUnit.Point)

g.DrawString(Linha0, FonteMensagem, Brushes.Red, 10, 30)
g.DrawString(Linha1, FonteMensagem, Brushes.Red, 80, 50)
g.DrawString(Linha2, FonteMensagem, Brushes.Black, 10, 65)
g.DrawString(Linha3, FonteMensagem, Brushes.Black, 10, 80)
g.DrawString(Linha4, FonteMensagem, Brushes.Black, 10, 95)
g.DrawString(Linha5, FonteMensagem, Brushes.Black, 10, 115)
g.DrawString(Linha6 & [Ô] [Ô] & LBLOS.Text & [Ô] [Ô] & Linha7 & [Ô] [Ô] & LBLDATA.Text, FonteMensagem, Brushes.Black, 10, 140)
g.DrawString(Linha8 & [Ô] [Ô] & LblCliente.Text, FonteMensagem, Brushes.Black, 10, 155)
g.DrawString(Linha9 & [Ô] [Ô] & LlbTel.Text, FonteMensagem, Brushes.Black, 10, 170)
g.DrawString(Linha10, FonteMensagem, Brushes.Black, 10, 185)



End Sub
NILSONTRES 18/09/2012 18:15:18
#409926
Resposta escolhida
Nesse metodo ela só para de acordo com o tamanho da folha.
Nesse tipo de impressora a melhor opção é essa:

Function IMPRIMI_CUPOM() As Boolean
Try
Dim sw As New IO.StreamWriter(My.Application.Info.DirectoryPath & [Ô]\Cupom.txt[Ô])
Dim V_POS As Integer = (42 - Len(V_CLIENTE_NAG)) / 2
[ô]**CABEÇA**
sw.WriteLine(Space(V_POS) & V_CLIENTE_NAG)
sw.WriteLine(Space(0) & [Ô]------------------------------------------[Ô])
sw.WriteLine(Space(0) & V_CLIENTE_NAG_LogRADOURO & [Ô],[Ô] & Space(1) & V_CLIENTE_NAG_NUMERO & Space(1) & V_CLIENTE_NAG_COMPL)
sw.WriteLine(Space(0) & V_CLIENTE_NAG_BAIRRO & [Ô] - [Ô] & Space(0) & V_CLIENTE_NAG_MUNICIPIO & Space(1) & V_CLIENTE_NAG_UF)
sw.WriteLine(Space(0) & [Ô]FONES [Ô] & Space(0) & V_CLIENTE_NAG_FONES)
sw.WriteLine(Space(10) & [Ô]** SEM VALOR FISCAL **[Ô])
sw.WriteLine(Space(0) & [Ô]CUPOM N° [Ô] & NUM_CUPOM & Space(5) & V_DATA & Space(1) & V_HORA & [Ô] FGTO [Ô] & V_FPGTO)
sw.WriteLine([Ô][Ô])
Dim IT As Integer = 0
For IT = 0 To V_QTD_ITENS - 1
[ô]sw.WriteLine(Space(0) & V_ITEM(IT) & Space(4 - Len(V_ITEM(IT))) & V_COD_BAR(IT) & Space(18 - Len(V_COD_BAR(IT))) & V_QTD(IT).PadLeft(5) & Space(1) & [Ô]X[Ô] & Space(1) & FormatNumber(V_VLR_UNIT(IT), 2).PadLeft(9) & Space(1) & [Ô]>[Ô] & Space(1) & FormatNumber(V_VLR_SUBTOTAL(IT), 2).PadLeft(9))
sw.WriteLine(Space(0) & V_ITEM(IT) & Space(4 - Len(V_ITEM(IT))) & V_COD_BAR(IT) & Space(18 - Len(V_COD_BAR(IT))) & FormatNumber(V_VLR_UNIT(IT), 2).PadLeft(9) & Space(1) & [Ô]X[Ô] & Space(1) & V_QTD(IT) & Space(7 - Len(V_QTD(IT))) & [Ô] [Ô] & Space(1) & FormatNumber(V_VLR_SUBTOTAL(IT), 2).PadLeft(9))
sw.WriteLine(Space(0) & V_DESCRICAO(IT))
sw.WriteLine([Ô][Ô])
[ô]sw.WriteLine(Space(0) & V_ITEM(IT) & Space(4 - Len(V_ITEM(IT))) & V_DESCRICAO(IT))
[ô]sw.WriteLine(Space(0) & V_COD_BAR(IT) & Space(18 - Len(V_COD_BAR(IT))) & FormatNumber(V_VLR_UNIT(IT), 2).PadLeft(9) & Space(1) & [Ô]X[Ô] & Space(1) & V_QTD(IT) & Space(6 - Len(V_QTD(IT))) & [Ô] [Ô] & Space(1) & FormatNumber(V_VLR_SUBTOTAL(IT), 2).PadLeft(9))

Next



If CType(V_DESCONTOS, Double) <> 0 Then
sw.WriteLine(Space(0) & [Ô]S.TOT > [Ô] & FormatNumber(V_SUBTOTAL, 2).PadLeft(9))
sw.WriteLine(Space(0) & [Ô]DESC > [Ô] & FormatNumber(V_DESCONTOS, 2).PadLeft(9))
End If
sw.WriteLine(Space(0) & [Ô]TOTAL > [Ô] & FormatNumber(V_TOTAL, 2).PadLeft(9))
sw.WriteLine([Ô][Ô])
sw.WriteLine(Space(0) & [Ô]DINH > [Ô] & FormatNumber(V_DIN, 2).PadLeft(9))
sw.WriteLine(Space(0) & [Ô]CHEQ > [Ô] & FormatNumber(V_CHQ, 2).PadLeft(9))
sw.WriteLine(Space(0) & [Ô]CART > [Ô] & FormatNumber(V_CART, 2).PadLeft(9))
sw.WriteLine(Space(0) & [Ô]VA > [Ô] & FormatNumber(V_VA, 2).PadLeft(9))
sw.WriteLine([Ô][Ô])
sw.WriteLine(Space(0) & [Ô]TROCO > [Ô] & FormatNumber(V_TROCO, 2).PadLeft(9))
[ô]configura a altura de cada linha em 1/8
[ô]Dim V_1 As String = [Ô]ABCDE[Ô]
[ô]Dim V_2 As Double = [Ô]10,00[Ô]


[ô]Dim V_3 As String = [Ô]ABCDEEFGHIJ[Ô]
[ô]Dim V_4 As Decimal = [Ô]111.550,00[Ô]
[ô]sw.WriteLine(Chr(27) & [Ô]0[Ô])
[ô]sw.WriteLine(Space(0) & V_1 & Space(45 - Len(V_1)) & FormatNumber(V_2, 2).PadLeft(10))
[ô]sw.WriteLine(Space(0) & V_3 & Space(45 - Len(V_3)) & FormatNumber(V_4, 2).PadLeft(10))
[ô]sw.WriteLine([Ô][Ô])
[ô]sw.WriteLine(Space(0) & V_1 & Space(45 - Len(V_1)) & FormatNumber(V_2, 2).PadLeft(10))
[ô]sw.WriteLine(Space(0) & V_3 & Space(45 - Len(V_3)) & FormatNumber(V_4, 2).PadLeft(10))
sw.Flush()
sw.Close()
[ô]MsgBox([Ô]11[Ô])
[ô]System.Diagnostics.Process.Start([Ô]F:\PROJETOS\NCS.NET\COMERCIAL\COMERCIAL\bin\Debug\COMERCIAL.bat[Ô])
[ô]System.Diagnostics.Process.Start([Ô]F:\PROJETOS\NCS.NET\COMERCIAL\COMERCIAL\bin\Debug\PPR.bat[Ô])

System.IO.File.Copy(My.Application.Info.DirectoryPath & [Ô]\Cupom.txt[Ô], NOMEDAIMPRESSORA, True)

Return True
Catch
MsgBox(Err.Description, MsgBoxStyle.Critical, [Ô]IMPRIMI_CUPOM[Ô])
Return False
End Try
End Function

[ô]ONDE ESTA NOMEDAIMPRESSORA, SE FOR VIA USB, ENTÃO COMPARTILHA ELA E CHAMA \\COMTARTILHAMENTO\IMPRESSORACOMPARTILHADA
MAXGUIMEL 19/09/2012 11:36:29
#409971
Hum, blz Nilsontres vou fazer o Teste aqui e depois eu posto o resultado, obrigado!
Tópico encerrado , respostas não são mais permitidas