Impressoras de etiqueta possuem uma linguagem especifica para impressão, a PPL (Printer Programming Language), porem vários fabricantes de impressoras passaram a desenvovler suas próprias linguagens, criando assim uma grande variedade. As mais famosas são a PPL-A, PPL-B e a ZPL.
Antigamente a unica maneira de imprimir era enviando os comandos nessas linguagens para a impressora, entretanto atualmente quase todos os modelos trabalham com Drivers que fazem o trabalho de emulação, permitindo assim que seja tratada como uma impressora convensional. Entretanto dependendo do modelod a impressora, essa emulação pode causar uma grande lentidão, e dessa forma prejudicar a operaçãod e emissão de etiquetas.
Considerando que a principais impressoras do mercado atualmente tem um bom desempenho com seus Drivers, a IWS tem como padrã a impressão via driver, que permite ao usuário maior flexibilidade na criação do layout da sua etiqueta, entretanto para os modelos que mais antigos, é possivel configurar o Servidor de Impressão de Etiqueta.
O servidor de impressão é responsavel pela impressão em PPL, portanto deve existir um servidor de impressão de etiqueta por impressora.
Ao iniciar o servidor de impressão o usuário deverá definir a porta de comunicação (o padrão é 5075) e as configurações da impressora.
Como pode ser visto, a porta pode ser alterado, mudando o campo porta e clicando no ok (botão ao lado). Caso queira mudar a porta, é preciso desativar o servidor, para isso clique no menu Arquivo e clique em “Desativar Servidor”, poderá notar que o LED verde da seção Servidor ficará apagada, após salvar a alteração, deve reativar no mesmo lugar.
Para alterar a impressoa, o usuário deverá escolher a porta em que a impressora está conectado, selecionar o modelo (ppla, pplb, zpl entre outras) de acordo com o firmware da sua impressora. Os demais parametros devem ser seguidos de acordo com o manual de cada fabricante a fim de prmitir imprimir corretamente a etiqueta. Após todas as alterações realizadas, é preciso Salvar as configurações e reiniciar o servidor. (o LED vermelho ficará aceso caso alguma alteração seja feita e não seja reiniciado o servidor).
Caso queria testar a impressão, o servidor possui um layout padrão, basta clicar em “Testar Impressão Generica”.
O servidor possui um “Banco de Dados” para fazer a SPOOL de impressão, e esse banco por padrão se encontra na mesma pasta do executavel sob o nome de “DBPRINTETQ.FDB”. Caso precise alterar o arquivo de lugar, será necesário desconectar do banco de dados no meno Arquivo, e após realizar a alteração, reativa-lo.
Na seção Banco de Dados, é possivel verificar o conteudo do SPOOL de impressão, com a lista das etiquetas que serão impressas. Caso o SPOOL esteja parado, é possivel inclusive imprmir uma etiqueta que está na fila, ou até mesmo excluir para não ser impressa.
Em relação ao SPOOL, pode-se programar o intervalo de verificação de impressão que por padrão é 500 ms, ou seja, a cada 500 ms o servidor irá veriicar se foi enviado nova etiqueta para a fila de impressão.
O layout da etiqueta para o servidor reconhecer e traduzir para linguagem PPL deve seguir um padrão: Os parametros devem ser precedito por <@ e finalizado por @> e esse parametro deve ser o nome do DataSet e o do Campo a ser impresso separado por . (ponto) Caso o parametro seja do tipo numerico, deve-se colocar a quantidade de decimais separados por [] exemplo:
txt;N;2;2;2;3;3;<@cdsLabels.Descricao@>;0;0; br;N;0;2;2;13;5;<@cdsLabels.ean@>;10;1; cx;10;32;56;13;1;1; txt;N;3;4;4;12;50;<@cdsLabels.Preco[2]@>;
primeiro parametro é TIPO txt = Texto br = Código de Barras cx = Caixa ln = Linha
Para o tipo Texto temos: Orientação {N,2,1,9} .:
N = Normal 2 = rotação 270 graus 1 = rotação 180 graus 9 = rotação 90 graus
Fonte {1 .. 6} .: de acordo com o index de fonte da impressora Multiplicado Horizontal : para aumentar horizontalmente a fonte Multiplicado Vertical : para aumentar verticalmente a fonte Horizontal : posição horizontal inicial do texto Vertical : posição vertical inicial do texto SubFonte : padrão 0 .: é o index de alguma fonte inserida pelo usuario na impressora, depende do modelo Imprimir Reverso: padrão 0 (Falso) .: caso seja eviado 1, faz impressão no negativo
Para tipo Código de Barras temos: Orientação {N,2,1,9} .:
N = Normal 2 = rotação 270 graus 1 = rotação 180 graus 9 = rotação 90 graus
Tipo {0,1,2,3,4,5,6,7,8,9,10} .:
0 = EAN13 1 = EAN8 2 = STANDARD 3 = INTERLEAVED 4 = CODE128 5 = CODE39 6 = CODE93 7 = UPCA 8 = CODABAR 9 = MSI 10 = CODE11
LarguraBarraLarga : (padrão 2) propriedade especifica de alguns tipos de código de barras LarguraBarraFina : (padrão 2) propriedade especifica de alguns tipos de código de barras Vertical : posição inicial verticalmente Horizontal : posição inicial horizontalmente Texto : texto a ser escrito como codigo de barras AlturaCodBarras : altura do código de barras ExibeCodigo {0,1,2} .:
0 = Padrão 1 = SIM 2 = NÃO
Para tipo de Caixa temos: Vertical : posição inicial vertical Horizontal : posição inicial horizontal Largura : largura da caixa Altura : altura da caixa EspessuraVertical : espessura da linha vertical EspessuraHorizontal : espessura da linha horizontal Canto : padrão 0
Para tipo Linha temos: Vertical : posição inicial vertical Horizontal : posição inicial horizontal Largura : largura da linha Altura : altura da linha