The Argox OS-214 Plus printer is cutting barcodes of products with 9 or more digits, making it impossible to read these codes.
What can I do to tag these bar codes with 9 or more digits?
My template is this:
[STX]L
H16
D22
101100000590010[DESCR0118]
101100000500010[DESCR1918]
101100000350020R$:[PRECO]
1E1101500000015[CODDEBARRAS]
101100000590155[DESCR0118]
101100000500155[DESCR1918]
101100000350170R$:[PRECO]
1E1101500000165[CODDEBARRAS]
101100000590300[DESCR0118]
101100000500300[DESCR1918]
101100000350310R$:[PRECO]
1E1101500000305[CODDEBARRAS]
E
[STX]Q
My code is this:
public void ImprimirGondola(cad_impressora_spool imp, cad_produto produto, cad_etiqueta modelo, int copias)
{
for (int i = 0; i < copias; i++)
{
string impressora = string.Format("\\{0}\{1}", imp.Maquina, imp.Compartilhamento);
string tempfile = Path.GetTempFileName();
string text = modelo.template;
// REPLACE DA VARIAVEL [STX]
text = text.Replace("[STX]", ((char)2).ToString());
bool continua = true;
do
{
if (text.IndexOf("[DESCR") >= 0)
{
// CAPTURA NOME INTEIRO DA VARIAVEL
string variavel = text.Substring(text.IndexOf("[DESCR"), 11);
// CAPTURA INICIO DE CARACTER E FIM
int startIndex = Convert.ToInt32(variavel.Substring(6, 2))-1;
int length = Convert.ToInt32(variavel.Substring(8, 2));
// CAPTURA DESCRICAO QUEBRADA
string descricaoTratada = produto.Descricao.PadRight(startIndex + length + 1, ' ').Substring(startIndex, length).Trim();
text = text.Replace(variavel, descricaoTratada);
}
else
{
continua = false;
}
} while (continua);
text = text.Replace("[PRECO]", produto.Preco_venda.ToString("N2"));
text = text.Replace("[PRECOGRAMA]", (produto.Preco_venda/10).ToString("N2"));
// REPLACE DA VARIAVEL [TIPOUNI]
text = text.Replace("[TIPOUNI]", produto.tipo_unidade);
// REPLACE DA VARIAVEL [CODIGO]
text = text.Replace("[CODIGO]", produto.Id.ToString());
// REPLACE DA VARIAVEL [CODDEBARRAS]
if (text.Contains("[CODDEBARRAS]"))
{
int posicao = text.IndexOf("[CODDEBARRAS]");
string tipoDeBarra = string.Empty;
StringBuilder sb = new StringBuilder(text);
sb.Remove(posicao - 14, 1);
//IMPRESSÃO DE PRODUTOS COM 9 A 11 DIGITOS ESTÁ FICANDO COM
//O CODIGO DE BARRAS MUITO GRANDE E ESTÁ ESTOURANDO O TAMANHO DA ETIQUETA
if (produto.Id.ToString().Length == 13)
{
// EAN
//sb.Insert(posicao - 14, "F");
tipoDeBarra = "1F11";
}
else if (produto.Id.ToString().Length == 8)
{
// EAN 8
//sb.Insert(posicao - 14, "G");
tipoDeBarra = "1G11";
}
else
{
// CODIGO INTERNO
//sb.Insert(posicao - 14, "E");
tipoDeBarra = "1E11";
}
//text = sb.ToString();
text = text.Replace("1E11", tipoDeBarra);
text = text.Replace("[CODDEBARRAS]", produto.Id.ToString());
}
using (StreamWriter sw = new StreamWriter(tempfile))
{
sw.Write(text);
sw.Close();
}
File.Copy(tempfile, impressora);
}
}