IMPRESSÃO PELO PRINTER
Olá amigos
Utilizando as funções Printer e o código de barras Code-Bar 39 estou conseguindo fazer impressão com a impressora DYMO, minha dúvida é, são 2 etiquetas a cada espaçamento, sendo assim entendi que a cada duas etiquetas tenho que enviar o comando Printer.EndDoc. Então a impressora dá uma parada, imprime, parada, iimprime, etc. Abaixo código que estou usando, se alguém souber se existe alguma forma de melhorar para o objeto printer.
Etq = 1
Do While Not TFEti.EOF
PaperID = GetPaperID([Ô]30252 Address[Ô])
If Printer.PaperSize <> 200 Then
Printer.PaperSize = 200
End If
If Etq = 1 Then
[ô]linha 1
Printer.FontName = [Ô]Arial[Ô]
Printer.FontSize = 6
Printer.CurrentX = 150: Printer.CurrentY = 50: Printer.Print [Ô]COR: [Ô] & TFEti!PROCOR
Printer.CurrentX = 150: Printer.CurrentY = 200: Printer.Print [Ô]TAM: [Ô] & TFEti!PROGRT
Printer.CurrentX = 150: Printer.CurrentY = 350: Printer.Print [Ô]MAG99[Ô] & LPad(Retira(TProdutos!PROCDO, [Ô],[Ô], UM_A_UM), 5, 0)
Printer.CurrentX = 2100: Printer.CurrentY = 350: Printer.Print CodBarras
[ô]etiqueta 1
Printer.FontName = [Ô]Bar-Code 39[Ô]
Printer.FontSize = 12
Printer.CurrentX = 2050
Printer.CurrentY = 50
Printer.Print [Ô]*[Ô] & LPad(TProdutos![Código Do Produto], 5, 0) & [Ô]*[Ô]
Else
[ô]linha 2
Printer.FontName = [Ô]Arial[Ô]
Printer.FontSize = 6
Printer.CurrentX = 150: Printer.CurrentY = 650: Printer.Print [Ô]COR: [Ô] & TFEti!PROCOR
Printer.CurrentX = 150: Printer.CurrentY = 800: Printer.Print [Ô]TAM: [Ô] & TFEti!PROGRT
Printer.CurrentX = 150: Printer.CurrentY = 950: Printer.Print [Ô]MAG99[Ô] & LPad(Retira(TProdutos!PROCDO, [Ô],[Ô], UM_A_UM), 5, 0)
Printer.CurrentX = 2100: Printer.CurrentY = 950: Printer.Print CodBarras
[ô]etiqueta 2
Printer.FontName = [Ô]Bar-Code 39[Ô]
Printer.FontSize = 12
Printer.CurrentX = 2050
Printer.CurrentY = 650
Printer.Print [Ô]*[Ô] & LPad(TProdutos![Código Do Produto], 5, 0) & [Ô]*[Ô]
End If
If Etq = 2 Then
Etq = 1
Printer.EndDoc
Else
Etq = Etq + 1
End If
vgQuant = vgQuant + 1
If TFEti!FGEQTD = vgQuant Then
TFEti.MoveNext
If TFEti.EOF Then: Printer.EndDoc: Exit Do
vgQuant = 0
End If
Loop
Exit Sub
Utilizando as funções Printer e o código de barras Code-Bar 39 estou conseguindo fazer impressão com a impressora DYMO, minha dúvida é, são 2 etiquetas a cada espaçamento, sendo assim entendi que a cada duas etiquetas tenho que enviar o comando Printer.EndDoc. Então a impressora dá uma parada, imprime, parada, iimprime, etc. Abaixo código que estou usando, se alguém souber se existe alguma forma de melhorar para o objeto printer.
Etq = 1
Do While Not TFEti.EOF
PaperID = GetPaperID([Ô]30252 Address[Ô])
If Printer.PaperSize <> 200 Then
Printer.PaperSize = 200
End If
If Etq = 1 Then
[ô]linha 1
Printer.FontName = [Ô]Arial[Ô]
Printer.FontSize = 6
Printer.CurrentX = 150: Printer.CurrentY = 50: Printer.Print [Ô]COR: [Ô] & TFEti!PROCOR
Printer.CurrentX = 150: Printer.CurrentY = 200: Printer.Print [Ô]TAM: [Ô] & TFEti!PROGRT
Printer.CurrentX = 150: Printer.CurrentY = 350: Printer.Print [Ô]MAG99[Ô] & LPad(Retira(TProdutos!PROCDO, [Ô],[Ô], UM_A_UM), 5, 0)
Printer.CurrentX = 2100: Printer.CurrentY = 350: Printer.Print CodBarras
[ô]etiqueta 1
Printer.FontName = [Ô]Bar-Code 39[Ô]
Printer.FontSize = 12
Printer.CurrentX = 2050
Printer.CurrentY = 50
Printer.Print [Ô]*[Ô] & LPad(TProdutos![Código Do Produto], 5, 0) & [Ô]*[Ô]
Else
[ô]linha 2
Printer.FontName = [Ô]Arial[Ô]
Printer.FontSize = 6
Printer.CurrentX = 150: Printer.CurrentY = 650: Printer.Print [Ô]COR: [Ô] & TFEti!PROCOR
Printer.CurrentX = 150: Printer.CurrentY = 800: Printer.Print [Ô]TAM: [Ô] & TFEti!PROGRT
Printer.CurrentX = 150: Printer.CurrentY = 950: Printer.Print [Ô]MAG99[Ô] & LPad(Retira(TProdutos!PROCDO, [Ô],[Ô], UM_A_UM), 5, 0)
Printer.CurrentX = 2100: Printer.CurrentY = 950: Printer.Print CodBarras
[ô]etiqueta 2
Printer.FontName = [Ô]Bar-Code 39[Ô]
Printer.FontSize = 12
Printer.CurrentX = 2050
Printer.CurrentY = 650
Printer.Print [Ô]*[Ô] & LPad(TProdutos![Código Do Produto], 5, 0) & [Ô]*[Ô]
End If
If Etq = 2 Then
Etq = 1
Printer.EndDoc
Else
Etq = Etq + 1
End If
vgQuant = vgQuant + 1
If TFEti!FGEQTD = vgQuant Then
TFEti.MoveNext
If TFEti.EOF Then: Printer.EndDoc: Exit Do
vgQuant = 0
End If
Loop
Exit Sub
para imprimir direto esta é a melhor maneira não tem muito o que fazer.
Tópico encerrado , respostas não são mais permitidas