jéssy Posted February 14, 2022 Report Share Posted February 14, 2022 Boa tarde. Estou alterando um projeto e não conheço muito sobre PPLA e impressão de Etiquetas. Estou com dúvidas referente as coordenadas X e Y. Não há muita coisa a respeito na internet e não encontrei nenhum emulador para poder testar minhas alterações. Os links que encontrei em fóruns estão off. Alguém poderia me explicar como essa parte das coordenadas funciona? Tenho um código de barras e duas linhas de texto na etiqueta, então, se alguém tiver como explicar com algo parecido ao que tenho, seria ótimo. Se não, só a explicação já é suficiente. Obs.: Se alguém souber como eu posso testar sem ter a impressora, aceito também. Desde já, muito obrigada. Quote Link to comment Share on other sites More sharing options...
mmarcondes Posted February 15, 2022 Report Share Posted February 15, 2022 Achei esses links, pode ser que te ajude : http://www.pctoledo.com.br/forum/viewtopic.php?f=4&t=12576&start=0 Quote Link to comment Share on other sites More sharing options...
rochinha Posted February 16, 2022 Report Share Posted February 16, 2022 Amiguinhos, Veja também: CURL: Previsualizar etiquetas ZPL sem impressora Zebra Visualizador Online ZPL Editor Manual ZPL vailtom 1 Quote Link to comment Share on other sites More sharing options...
mmarcondes Posted February 16, 2022 Report Share Posted February 16, 2022 Pelo que me lembro, para imprimir nessas impressoras, tudo o que vc manda imprimir, começa de baixo pra cima e da direita pra esquerda. Quote Link to comment Share on other sites More sharing options...
LeandroFreitas67 Posted June 6, 2022 Report Share Posted June 6, 2022 Boa tarde! Teria algum visualizador como este ZPL da Zebra, para o PPLA (DPL) da Argox??? Obrigado! Quote Link to comment Share on other sites More sharing options...
agp.ds Posted June 9, 2022 Report Share Posted June 9, 2022 Boa tarde, da uma olhada nesse exemplo: #include "FiveWin.ch" #xcommand @ <nRow>,<nCol> SAY <cText> OF <oPrinter> => <oPrinter>:Say(<nRow>, <nCol>, <cText> ) function PPLA(wREF,wQTDE) LOCAL nREF1:=SPACE(08), nREF2:=SPACE(07), nIND:=0 LOCAL nVEND:=0, nQTD:=0, nIX:="", nCob LOCAL nLin := 0, nCol:=0 wREF:=SPACE(15) wQTDE:=0 nREF1:=(wREF,8) nREF2:=(wREF,7) nVEND:=45.50 nQTD:=wQTDE nCob:="00000017" nIX:="R$" oPrn:= TDosPrn():New("CODIGO.PRN") oPrn:StartPage() oPrn:lZeraBuffer:=.T. // Inibe o Pulo da P gina WHIL ! ISPRINTER() IF ! MsgRetryCancel( "Sua Impressora, Não Esta Ligada!!! " + CRLF + ; "Favor Verificar e tente de novo!",; "Erro de Impressora!" ) Return Nil ENDIF ENDDO oPrn:Say(1, 1, CHR(002)+"m"+CHR(13) ) // * Configura em milimitros oPrn:Say(1, 1, CHR(002)+"L"+CHR(13) ) // * INICIA com o comando de entrada do formato da etiqueta oPrn:Say(1, 1, "H12"+CHR(13) ) // Qualidade oPrn:Say(1, 1, "D11"+CHR(13) ) // Densidade For nCol := 1 to 3 *If !Empty(aConteudo1[nVz,nCol]) cLin1 := "Produto" cLin2 := "Texto2" cLin3 := "20,60" cBar := "0000000009173" cBar1 := "5029" // CHR(002)+"L"+CHR(13) = Comando de entrada do formato da etiqueta // Formato Texto: // 1.2.1.1.000.0100.0050, onde: // 1 = Orientação da etiqueta // 2 = Fonte (0-8 com Subtipo 000 /ou/ 9 com Subtipo de 000 a 007 /ou/ : com subtipo 000 a 005) // 1 = Multiplicador Horizontal // 1 = Multiplicador Vertical // 000 = Subtipo da Fonte (000 a 007, depende da Fonte) - Quanto maior o número maior a fonte. // 0100 = Posição inicial Y (linha) máximo=101.6 // 0050 = Posição inicial X (coluna) máximo=762 // Exemplo: = oPrn:Say(1,1,CHR(002)+"L"+CHR(13)+"121100001000050"+"Esta é uma etiqueta teste"+CHR(13)+"E"+CHR(13)) // // Formato CodBar: // 1.2.1.1.000.0100.0050, onde: // 1 = Orientação da etiqueta // 2 = Tipo da Barra EAN13, 2-5 // 1 = Largura da Barra Largua // 1 = Largura da Barra Fina // 000 = Altura do Código de Barras // 0100 = Posição inicial Y (linha) máximo=101.6 // 0050 = Posição inicial X (coluna) máximo=762 /* Do Case Case nTipoBar=1 ; cLetra:="A" // Code 3 de 9 Case nTipoBar=2 ; cLetra:="E" // Code 128 Case nTipoBar=3 ; cLetra:="F" // Ean 13 Case nTipoBar=4 ; cLetra:="G" // Upca End */ xcodi:="1F1209000100410" if nCol=1 oPrn:Say(1, 1, "120100001700050"+cLin1+CHR(13) ) // nome da empresa oPrn:Say(1, 1, "121100001500050"+cLin3+CHR(13) ) // valor oPrn:Say(1, 1, "1F1209000100050"+cBar +CHR(13) ) // Código de Barras //1F1203000500300 elseif nCol=2 oPrn:Say(1, 1, "120100001700410"+cLin1+CHR(13) ) // nome da empresa oPrn:Say(1, 1, "121100001500410"+cLin3+CHR(13) ) // valor oPrn:Say(1, 1, xcodi+cBar +CHR(13) ) // Código de Barras elseif nCol=3 oPrn:Say(1, 1, "120100001700770"+cLin1+CHR(13) ) // nome da empresa oPrn:Say(1, 1, "121100001500770"+cLin3+CHR(13) ) // valor oPrn:Say(1, 1, "1A0009000100770"+cBar1+CHR(13) ) // Código de Barras EndIf Next nCol oPrn:Say(1, 1, "E"+CHR(13) ) // * ENCERRA a etiqueta oPrn:EndPage() // Obrigat¢rio oPrn:End() // Idem SysRefresh() ImpSpool( "CODIGO.PRN", "LPT1", .T. ) return .t. //----------------------------------------------------------------------------// FUNCTION ImpSpool( cFileTxt, cPorta, lErase ) LOCAL CPRINTER //para capturar antes da impressão //cPorta := PrnGetPorta() //WinExec( cPorta ) //depois da impressão //WinExex( "Net Use Lpt1: \Delete" ) //Ficou mais facil e simples do que criar as portas na Classe TDosPrn //cPorta := If( cPorta == nil, Alltrim( PrnGetPort() ), cPorta ) ; lErase := If( lErase == nil, .T., lErase ); //cPorta := PrnGetPort() Default cPorta := Alltrim( PrnGetPort() ), lErase:= .t. cPrinter := PrinterPortToName( cPorta ) IF EMPTY( cPrinter ) // By Kleyber Derick cPrinter := PrinterPortToName( "USB002" ) IF EMPTY(cPrinter) cPrinter := PrinterPortToName( "USB001" ) ENDIF // e se estiver nas USB003 OU USB004? ENDIF IF .NOT. FILE( cFileTxt ) MsgInfo( OemToAnsi( "NÇO ACHEI O ARQUIVO MODO TEXTO PARA IMPRIMIR NA MATRICIAL" ), ; OemToAnsi( "NÇO ACHEI O ARQUIVO MODO TEXTO PARA IMPRIMIR NA MATRICIAL" ) ) RETURN( .F. ) ENDIF IF .NOT. EMPTY( cPrinter ) // TEM USB PrintFileRaw( cPrinter, cFileTxt, "Impressão de CÓDIGO" ) ELSEIF LEN( cPorta ) <= 5 .and. Left( Upper(cPorta), 4 ) = "LPT1" //--- Spool Local - Matricial em LPT1 cPorta:= "PRN" WAITRUN("COMMAND.COM /C COPY /B " + cFileTxt + " " + cPorta, 0 ) ELSE //--- Spool Remoto - Matricial em LPT1 WAITRUN("COMMAND.COM /C COPY /B " + cFileTxt + " " + cPorta, 0 ) ENDIF IF lErase // Vem .T. da tela de vendas FERASE( cFileTxt ) // apaga o .TXT ENDIF RETURN( .T. ) Quote Link to comment Share on other sites More sharing options...
Ladinilson Posted September 16, 2022 Report Share Posted September 16, 2022 Em 16/02/2022 at 14:44, rochinha disse: Amiguinhos, Veja também: CURL: Previsualizar etiquetas ZPL sem impressora Zebra Visualizador Online ZPL Editor Manual ZPL Amigo esta linguagem da Zebra poderia ser usada em uma ARGOZ OS- 2140 em PPLA ou emular para usá-la? O Visualizador On Line é muito bom para contruirmos a etiqueta e depois só usar como no exemplo abaixo que é ao meu ver beeeeem mais simples: FUNCTION ETIQUETA_ZEBRA(nPEDI, nVOLU) LOCAL nQTDE:=[1] PRIVATE TXTARQ, WLINHA, nTAMANHO, TXT:=[], xTXT:={} PRIVATE AAA := CurDrive()+":\"+CurDir()+[\TEMP\ETI]+SUBSTR(TIME(),1,2)+SUBSTR(TIME(),4,2)+SUBSTR(TIME(),7,2)+[.PRN] PRIVATE ARQTESTE IF ( ARQTESTE := FCreate( AAA,0 ) ) == F_ERROR HWG_MSGINFO([Nao criou o arquivo]+CRLF+ALLTRIM(AAA)) RETURN NIL ELSE FCLOSE(ARQTESTE) ENDIF SAIR() @ 01,00 SAY PADC([Imprimir etiquetas de envio - ZEBRA], 80 ) @ 11,00 SAY [No. Pedido: ] GET nPEDI PICT [999999] @ 12,00 SAY [No Volumes: ] GET nVOLU PICT [999] READ IF LASTKEY() = 27 SAIR() RETURN NIL ENDIF USE xMITI NEW SHARED SET INDEX TO XMITNOTA DBSEEK(nPEDI, .F.) IF FOUND() cCODCLI:=CODCLI ; cRAZ:=RAZAO ; cNNF:=NNFE ; xOBSER1:=OBS1 xOBSER2:=OBS2 ; xOBSER3:=OBS3 ; xOBSER4:=OBS4 ; xVLRNFe:=TOTNOTAS CLOSE DATA USE xCLIENTE SHARED NEW SET INDEX TO xRCLICOD DBSEEK( cCODCLI, .F.) IF FOUND() cENDERECO:=ENDENTREGA ; cBAIRRO:=BAIEN ; cCIDADE:=CIDADEEN ; cUF:=ESTAEN ; cCEP:=CEPEN SAIR() ELSE nOPT:=0 ALERTNEW([Dados do cliente nao localizados]) SAIR() RETURN NIL ENDIF ELSE nOPT:=0 ALERTNEW([Pedido nao localizado]) SAIR() RETURN NIL ENDIF C:=1 DO WHILE C <= nVOLU IF C = 1 TXT := [^XA~TA000~JSN^LT0^MNW^MTD^PON^PMN^LH0,0^JMA^PR4,4~SD15^JUS^LRN^CI0^XZ] AADD( xTXT, TXT ) ENDIF TXT:=[^XA] AADD( xTXT, TXT ) TXT:=[^PW831] AADD( xTXT, TXT ) TXT:=[^LL0799] AADD( xTXT, TXT ) TXT:=[^LS0] AADD( xTXT, TXT ) TXT:=[^CF0,50] AADD( xTXT, TXT ) TXT:=[^FO50,50^FDHospitalar Com Med Ltda^FS] AADD( xTXT, TXT ) TXT:=[^CF0,30] AADD( xTXT, TXT ) TXT:=[^FO50,100^FDR 303^FS] AADD( xTXT, TXT ) TXT:=[^FO50,140^FDJardim America^FS] AADD( xTXT, TXT ) TXT:=[^FO50,180^FDCep: 99999-999 - GO - GO^FS] AADD( xTXT, TXT ) TXT:=[^FO50,220^FDTel: (64) 9999-9999 ^FS] AADD( xTXT, TXT ) TXT:=[^FO50,250^GB720,1,3^FS] AADD( xTXT, TXT ) TXT:=[^CF0,25] AADD( xTXT, TXT ) TXT:=[^FO50,280^FDDestinatario:^FS] AADD( xTXT, TXT ) TXT:=[^CF0,30] AADD( xTXT, TXT ) TXT:=[^FO50,330^FD]+ALLTRIM(cRAZ) +[^FS] AADD( xTXT, TXT ) TXT:=[^FO50,370^FD]+ALLTRIM(cENDERECO)+[^FS] AADD( xTXT, TXT ) TXT:=[^FO50,410^FD]+ALLTRIM(cBAIRRO) +[^FS] AADD( xTXT, TXT ) TXT:=[^FO50,450^FDCEP: ]+ALLTRIM(cCEP) +[ ]+ALLTRIM(cCIDADE)+[ ]+ALLTRIM(cUF) + [^FS] AADD( xTXT, TXT ) TXT:=[^FO50,510^GB720,1,3^FS] AADD( xTXT, TXT ) TXT:=[^CF0,35] AADD( xTXT, TXT ) TXT:=[^FO50,540^FDNo. NFe: ]+STRZERO(cNNF,9) + [ Valor NFe: R$ ]+STR(xVLRNFe,12,2)+[^FS] AADD( xTXT, TXT ) TXT:=[^FO50,600^FDVolumes: ]+STRZERO(C,4)+[/]+STRZERO(nVOLU,4)+[ No. Pedido: ]+STRZERO(nPEDI,7)+[^FS] AADD( xTXT, TXT ) TXT:=[^FO50,650^GB720,100,2^FS] AADD( xTXT, TXT ) TXT:=[^FO60,690] AADD( xTXT, TXT ) TXT:=[^FDPor favor atencao: CUIDADO MATERIAL FRAGIL^FS] AADD( xTXT, TXT ) TXT:=[^PQ1,0,1,Y^XZ] AADD( xTXT, TXT ) C++ ENDDO A:=1 TXTARQ := FOPEN( AAA, 2 ) nTAMANHO := LEN(xTXT) DO WHILE A <= nTAMANHO WLINHA:= ALLTRIM(xTXT[A])+CHR(13)+CHR(10) FSEEK( TXTARQ, 0, 2 ) FWRITE( TXTARQ, ALLTRIM(WLINHA), LEN(WLINHA)) A++ ENDDO FCLOSE(TXTARQ) cArquivo:=alltrim(AAA) Escolhe_impressora( cArquivo ) //Escolhe_impressora_VISUAL( cArquivo ) // teste visual em 01/10/2015 /* cImpressora := GetDefaultPrinter() // Pego a Impressora Padrão, como expliquei acima já deixo a Argox como padrão PrintFileRaw(cImpressora, cArquivo, [Teste]) // Jogo o arquivo nela, ela pode estar LPT1, USB q vai embora... */ SAIR() RETURN NIL Abraços Quote Link to comment Share on other sites More sharing options...
kapiaba Posted September 19, 2022 Report Share Posted September 19, 2022 http://www.pctoledo.com.br/forum/viewtopic.php?f=4&t=25142&p=147919&hilit=ARGOX#p147919 Quote Link to comment Share on other sites More sharing options...
Ladinilson Posted September 20, 2022 Report Share Posted September 20, 2022 20 horas atrás, kapiaba disse: http://www.pctoledo.com.br/forum/viewtopic.php?f=4&t=25142&p=147919&hilit=ARGOX#p147919 Obrigado Kapi, resolvi fazer em FastReport e ficou show de bola com tudo e até QR Code pois se não fosse essa solução, essas bombas da Argox é um saco. E olha o coração quando teu time for jogar com o mengão kkkkk Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.