Problema de correspondência Code128A códigos de barras gerado com iTextSharp vs. Barcode.4NET

StackOverflow https://stackoverflow.com/questions/294773

Pergunta

Primeiro de tudo, eu estou meio novo para os formatos de código de barras e o que eu sei, eu aprendi com Wikipedia.

Nós temos alguns códigos de barras gerados por um aplicativo existente que usa a biblioteca Barcode.4NET. O código de barras é em formato de código 128A. O código para gerá-los é bastante simples, procurando algo como isto:

// Create the barcode
Code128ABarcode c128A = new Code128ABarcode("045746201627080857");

Não há outros parâmetros são ajustados para ele -. Depois de definir os dados, nós apenas obter uma versão GIF da parte de trás do código de barras da biblioteca

Eu estou trabalhando em um novo aplicativo que está usando iTextSharp para a geração de PDF e eu percebi que em vez de usar duas bibliotecas, gostaria de usar a biblioteca de geração de código de barras do iTextSharp uma vez que suporta códigos de barras Code128. Tem algumas variações diferentes do código 128, mas nenhum deles é "Code 128A".

Aqui está o que os olhares código como para ele:

Barcode128 code128 = new Barcode128();
code128.CodeType = Barcode.CODE128;
code128.ChecksumText = true;
code128.GenerateChecksum = true;
code128.StartStopText = true;
code128.Code = "045746201627080857";

A imagem abaixo mostra o melhor que eu tenho feito até agora.

text alt

A imagem em cima é gerado por iTextSharp e um na parte inferior é gerada por Barcode4Net. Obviamente, eles não são os mesmos (e não apenas no tamanho e a fonte - os dados com código de barras é muito diferente).

Há alguém lá fora bastante familiarizado com iTextSharp (ou de iText si) componentes de código de barras ou com códigos de barras Código 128A para me dizer como fazer o iTextSharp um olhar exatamente como o que Barcode.4NET?

Foi útil?

Solução

É realmente necessário para eles a olhar exatamente o mesmo? As diferentes versões do código 128 são todos capazes de números que codificam, mesmo se os próprios códigos de barras olhar completamente diferente; o leitor deve resolver tudo no final.

Eu prefiro a variante B, porque tem as letras minúsculas, além da maiúsculas. Você pode ver uma tabela detalhando as diferenças no http://www.barcodeisland.com/code128.phtml

iTextSharp parece que está gerando variante C, que é o mais compacto se o texto é somente dígitos decimais. Ele codifica 2 dígitos na mesma quantidade de espaço como um único caractere nas outras codificações.

Outras dicas

O número deve ser:

*045746201627080857*

você precisa adicionar o asterisco para o início eo fim para que o código de barras pode ser readed, você precisa verificar na bruxa documentação do componente é necessário este caracteres.

o scanner precisa do líder e o asterisco à direita sobre este tipo de BC.

para o que eu posso ver no seu código, a linha

code128.StartStopText = true;

adiciona automaticamente, tentar definir essa propriedade para false, você vai acabar com o mesmo código de barras. No primeiro código que você deve usar

Code128ABarcode c128A = new Code128ABarcode("*045746201627080857*");

tentar-se:)

Editado:

O código de barras correto é:

alt texto http: //www.bcgen .com / demo / linear-dbgs.aspx? D = 045746201627080857 & S = 13 & CS = 1

a partir do link abaixo (usando ID Automation serviço gratuito ):

http://www.bcgen.com/demo/linear-dbgs.aspx?D=045746201627080857&S=13&CS=1

o que você tem é:

alt texto http: //www.bcgen .com / demo / linear-dbgs.aspx? D = 045746201627080857 & S = 13 & CS = 3

e este é Code128C em vez de Code128A como você pode conferir no link (eu mudei o propriedades de código de barras para Code128C)

http://www.bcgen.com /demo/linear-dbgs.aspx?D=045746201627080857&S=13&CS=3

Enquanto eu acho balexandre tem os geradores misturados, o seu conselho é bom.

Evidentemente Barcode.4NET está corretamente gerar o código de barras Código 128A que estou tentando emular.

iTextSharp está gerando uma 128C código de barras Código, que, de acordo com Mark Ransom, deve ser OK, exceto para os usuários e clientes provavelmente vai olhar para ele e dizer: "É demasiado curto e deverá ser parecido com os outros!"

Assim, o grande conselho, mas eu ainda estou de volta com "Como faço para gerar um código de barras Código 128A com iTextSharp?"

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top