Página 1 de 1

Imprimir CODE 128 C na MP 4200

Enviado: 26 Dez 2016 09:51
por gilbertosilverio
Ola amigos,

Estou tentando imprimir o Numero Chave da NF-e em um impressora MP 4200 não fiscal, e não estou conseguindo.

Alguem sabe qual e o codigo esc que devo usar, ja fiz varias tentativas mais não consegui.

PRIVATE TAM_WID:=CHR(29) + CHR(119) + CHR(3)
PRIVATE COD_39 :=CHR(29) + CHR(107) + CHR(69) + CHR(6) //+ STRZERO(NFS,6)
PRIVATE COD_39A:=CHR(29) + CHR(107) + CHR(69) + CHR(8)

PRIVATE COD_128:=CHR(29) + CHR(107) + CHR(73) + CHR(44) //+ STRZERO(nCHAVE,6)

No manual da Bematech, e informado assim:
Decimal 29 107 73 n d 1 ... d n

Minha duvida e "n", o que vai aqui?

Seguindo a logica do COD_39, que coloquei CHR(6), por tentativa e erro, coloquei chr(44), mais creio que não e isso...

Código: Selecionar todos


[Function] Print a CODE 39 barcode.
[Format] ASCII GS k E n d 1 ... d n
Hexadecimal 1D 6B 45 n d 1 ... d n
Decimal 29 107 69 n d 1 ... d n
[Description] This command is a copy of GS k EOT d 1 …d n NUL.

[Function] Print a CODE 128 barcode.
[Format] ASCII GS k I n d 1 ... d n
Hexadecimal 1D 6B 49 n d 1 ... d n
Decimal 29 107 73 n d 1 ... d n
[Range] 0 ≤ d n ≤ 127
[Description] d 1 …d n is a sequence of n bytes containing barcode information. The checksum digit is generated
automatically by the printer. The number of barcod

Grato.

Imprimir CODE 128 C na MP 4200

Enviado: 26 Dez 2016 10:38
por JoséQuintas

Código: Selecionar todos

Function] Print a CODE 128 barcode.
[Format] ASCII GS k I n d 1 ... d n
Hexadecimal 1D 6B 49 n d 1 ... d n
Decimal 29 107 73 n d 1 ... d n
[Range] 0 ≤ d n ≤ 127
[Description] d 1 …d n is a sequence of n bytes containing barcode information. The checksum digit is generated
automatically by the printer. The number of barcod
Parece que N é a quantidade de dígitos
Estranho o texto "dígito de checagem é gerado automaticamente pela impressora", o que sugere que seria um dígito a menos.

Imprimir CODE 128 C na MP 4200

Enviado: 26 Dez 2016 11:03
por gilbertosilverio
Jose,

Encontrei na net, que e aceito em "n" 0 42 1 28 2 16, seguindo a logica, seria então 42, pois a numero chave da NF-e são 44 caracteres.

Ja no manual da NFe:

Código: Selecionar todos


Considerando que para cada símbolo da barra são codificados dois caracteres, então teremos:
Tamanho do campo = 44 (caracteres) / 2 = 22 (símbolos)
Considerando que cada símbolo possui 11 (módulos) * 22 (símbolos) = 242 posições
Margem clara = deve ter no mínimo a dimensão de 10 (módulos) * 2 = 20 posições
Start C = 11 (módulos) = 11 posições
DV = 11 (módulos) = 11 posições
Stop = 13 (módulos) = 13 posições
Tamanho total da simbologia = 242 + 20 + 11 + 11 + 13 = 297 (posições)
Largura mínima de cada módulo da barra = 6 cm / 297 (posições) = 0,02 cm
6.1 Cálculo do Dígito Verificador do CODE-128C
O dígito verificador é baseado em um cálculo do módulo 103 considerando a soma ponderada
dos valores de cada um dos dígitos na mensagem que está sendo codificada, incluindo o valor
do caractere de início (start).

Exemplo: consideremos que a chave de acesso fosse apenas de oito caracteres e contivesse
o seguinte número: 09758364
Chave de acesso START 09 75 83 64
Sequência A 1 2 3 4
Valor do caractere B 105 9 75 83 64
Valor Ponderado (A X B) C 105 9 150 249 256
 Na linha valor do caractere foi incluso o valor 105 que corresponde ao valor do caractere
de início (start) para o padrão Code C.
 Excetuando o caractere de start, os demais valores dos caracteres coincidem com os
valores da chave de acesso, isto porque estamos utilizando o padrão Code C de
codificação que é exclusivamente numérico.
 O dígito verificador do código será o resto da divisão da somatória dos valores ponderados
dividido por 103 (módulo 103).
Assim o dígito verificador será:
 Valor da soma ponderada = (1x105)+(1x9)+(2x75)+(3x83)+(4x64) = 769
 769/103 = 7 resta 48, assim o DV é 48
Pelo manual seriam 22, ja pela Bematech seriam 42, e ai... vou colocar 42 e ver o que da...

Tudo tão confuso, que so por tentativa e erro para achar a solução... kkkk

O duro e que não tenho a impressora aqui, preciso ficar pedindo para o pessoal ir testando ate achar a solução.


Grato Jose.

:%

Imprimir CODE 128 C na MP 4200

Enviado: 26 Dez 2016 11:31
por JoséQuintas
[Range] 0 ≤ d n ≤ 127
Qualquer número entre 0 e 127.
Ao que parece, o limite de tamanho é da NFE, e não do código de barras.