====== Servidor de Impressão de Etiqueta ====== 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. ==== Configurano o Servidor 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. {{ :manuais:serveretq.png?nolink |}} 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. ==== Layout de Etiqueta ==== 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