Código de barras no modo texto

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Código de barras no modo texto

Mensagem por Jairo Maia »

Caros colegas,

Verifiquei no fórum e encontrei a solução para imprimir código de barras, porém, funciona (e funciona mesmo) apenas no modo GUI.

Ocorre que preciso migrar um módulo com urgência, e por ser iniciante em xHarbour, estou apenas compilando para 32 bits modo texto, para atender de forma emergêncial um cliente com Windows 7.

Gostaria de saber se tem alguma solução para imprimir código de barras com Xharbour em modo texto.

Abraços...
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7929
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Re: Código de barras no modo texto

Mensagem por Itamar M. Lins Jr. »

Usando win32prn, vai funcionar tranquilo em qualquer OS WIN, mesmo usando o console.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Re: Código de barras no modo texto

Mensagem por Jairo Maia »

Caro Itamar,

Fiz o texte de um exemplo que baixei aqui e compilei em modo texto. Quando acesso o objeto Win32prn():INI(cPrinter, cDoc), para setar a impressoa (ou usar a apadrão), recebo a seguinte mensagem: "Metod not exported".

Verifiquei os fontes e não me pareceu errado, então recorri ao manual e encontrei o seguinte no primeiro parágrafo da descrição sobre Win32pr:

"Objects of class Win32Prn provide the means for printing using the Windows Graphical Device Interface (GDI). For this reason, an application using Win32Prn objects must be created as GUI application. Text mode applications, or console applications, cannot use the Win32Prn class. "

Ou seja, funciona apenas em GUI. Porém, como já disse, sou iniciante, se tem como usar em modo texto, como devo fazer?

Obrigado
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7929
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Re: Código de barras no modo texto

Mensagem por Itamar M. Lins Jr. »

Ola!
Usando o Harbour:

Código: Selecionar todos

/*
 * $Id: testprn.prg 13647 2010-01-19 22:19:54Z vszakats $
 */

#include "common.ch"
#include "hbwin.ch"

PROCEDURE Main( cPar1 )
   LOCAL nPrn := 1
   LOCAL cBMPFile := Space( 40 )
   LOCAL aPrn := WIN_PRINTERLIST()
   LOCAL GetList := {}

   CLS

   IF Empty( aPrn )
      Alert("No printers installed - Cannot continue")
      QUIT
   ENDIF

   DO WHILE nPrn != 0
      CLS
      @ 0, 0 SAY "Win_Prn() Class test program. Choose a printer to test"
      @ 1, 0 SAY "Bitmap file name" GET cBMPFile PICT "@K"
      READ
      @ 2, 0 TO MaxRow(), MaxCol()
      nPrn := AChoice( 3, 1, MaxRow() - 1, MaxCol() - 1, aPrn, .T.,, nPrn )
      IF nPrn != 0
         PrnTest( aPrn[ nPrn ], cBMPFile, iif( ISCHARACTER( cPar1 ) .AND. Lower( cPar1 ) == "ask", .T., NIL ) )
      ENDIF
   ENDDO

   RETURN

STATIC PROCEDURE PrnTest( cPrinter, cBMPFile, lAsk )
   LOCAL oPrinter := Win_Prn():New( cPrinter )
   LOCAL aFonts
   LOCAL x
   LOCAL nColFixed
   LOCAL nColTTF
   LOCAL nColCharSet

   oPrinter:Landscape := .F.
   oPrinter:FormType  := WIN_DMPAPER_A4
   oPrinter:Copies    := 1
   IF ISLOGICAL( lAsk )
      oPrinter:AskProperties := lAsk
   ENDIF

   IF ! oPrinter:Create()
      Alert( "Cannot Create Printer" )
   ELSE
      IF ! oPrinter:startDoc( "Win_Prn(Doc name in Printer Properties)" )
         Alert( "StartDoc() failed" )
      ELSE
         oPrinter:SetPen( WIN_PS_SOLID, 1, HB_WIN_RGB_RED )
         oPrinter:Bold( WIN_FW_EXTRABOLD )
         oPrinter:TextOut( oPrinter:PrinterName + ": MaxRow() = " + Str( oPrinter:MaxRow(), 4 ) + "   MaxCol() = " + Str( oPrinter:MaxCol(), 4 ) )
         oPrinter:Bold( WIN_FW_DONTCARE )
         oPrinter:NewLine()
         oPrinter:TextOut("   Partial list of available fonts that are available for OEM_")
         oPrinter:NewLine()
         oPrinter:UnderLine( .T. )
         oPrinter:Italic( .T. )
//       oPrinter:SetFont( "Courier New", 7, { 3, -50 } )  // Compressed print
         nColFixed   := 40 * oPrinter:CharWidth
         nColTTF     := 48 * oPrinter:CharWidth
         nColCharSet := 60 * oPrinter:CharWidth
         oPrinter:TextOut( "FontName" )
         oPrinter:SetPos( nColFixed )
         oPrinter:TextOut( "Fixed?" )
         oPrinter:SetPos( nColTTF )
         oPrinter:TextOut( "TrueType?" )
         oPrinter:SetPos( nColCharset )
         oPrinter:TextOut( "CharSet#", .T. )
         oPrinter:NewLine()
         oPrinter:Italic( .F. )
         oPrinter:UnderLine( .F. )
         aFonts := oPrinter:GetFonts()
         oPrinter:NewLine()
         FOR x:= 1 TO Len( aFonts ) STEP 2
            oPrinter:CharSet( aFonts[ x, 4 ] )
            IF oPrinter:SetFont( aFonts[ x, 1 ] )       // Could use "IF oPrinter:SetFontOk" after call to oPrinter:SetFont()
               IF oPrinter:FontName == aFonts[ x, 1 ]  // Make sure Windows didn't pick a different font
                  oPrinter:TextOut( aFonts[ x, 1 ] )
                  oPrinter:SetPos( nColFixed )
                  oPrinter:TextOut( iif( aFonts[ x, 2 ], "Yes", "No" ) )
                  oPrinter:SetPos( nColTTF )
                  oPrinter:TextOut( iif( aFonts[ x, 3 ], "Yes", "No" ) )
                  oPrinter:SetPos( nColCharSet )
                  oPrinter:TextOut( Str( aFonts[ x, 4 ], 5 ) )
                  oPrinter:SetPos( oPrinter:LeftMargin, oPrinter:PosY + ( oPrinter:CharHeight * 2 ) )
                  IF oPrinter:PRow() > oPrinter:MaxRow() - 16  // Could use "oPrinter:NewPage()" to start a new page
                     EXIT
                  ENDIF
               ENDIF
            ENDIF
            oPrinter:Line( 0, oPrinter:PosY + 5, 2000, oPrinter:PosY + 5 )
         NEXT
         oPrinter:SetFont( "Lucida Console", 8, { 3, -50 } )  // Alternative Compressed print
         oPrinter:CharSet( 0 )  // Reset default charset
         oPrinter:Bold( WIN_FW_EXTRABOLD )
         oPrinter:NewLine()
         oPrinter:TextOut( "This is on line" + Str( oPrinter:Prow(), 4 ) + ", Printed bold, " )
         oPrinter:TextOut( " finishing at Column: " )
         oPrinter:TextOut( Str( oPrinter:Pcol(), 4 ) )
         oPrinter:SetPrc( oPrinter:Prow() + 3, 0 )
         oPrinter:Bold( WIN_FW_DONTCARE )
         oPrinter:TextOut( "Notice: UNDERLINE only prints correctly if there is a blank line after", .T. )
         oPrinter:TextOut( "        it. This is because of :LineHeight and the next line", .T. )
         oPrinter:TextOut( "        printing over top of the underline. To avoid this happening", .T. )
         oPrinter:TextOut( "        you can to alter :LineHeight or use a smaller font, or use :SetBkMode( WIN_TRANSPARENT )" )
         oPrinter:NewLine()
         oPrinter:NewLine()
         oPrinter:SetFont( "Lucida Console", 18, 0 )  // Large print
         oPrinter:SetColor( HB_WIN_RGB_GREEN )
         oPrinter:TextOut( "Finally some larger print" )
         oPrinter:Box(   0, oPrinter:PosY + 100, 100, oPrinter:PosY + 200 )
         oPrinter:Arc( 200, oPrinter:PosY + 100, 300, oPrinter:PosY + 200 )
         oPrinter:Ellipse( 400, oPrinter:PosY + 100, 500, oPrinter:PosY + 200 )
         oPrinter:FillRect( 600, oPrinter:PosY + 100, 700, oPrinter:PosY + 200, HB_WIN_RGB_RED )

//       To print a barcode;
//       Replace 'BCod39HN' with your own bar code font or any other font
//         oPrinter:TextAtFont( oPrinter:MM_TO_POSX( 30 ), oPrinter:MM_TO_POSY( 60 ), "1234567890", "BCod39HN", 24, 0 )
//
         PrintBitMap( oPrinter, cBMPFile )

         oPrinter:EndDoc()
      ENDIF
      oPrinter:Destroy()
   ENDIF

   RETURN

STATIC PROCEDURE PrintBitMap( oPrn, cBitFile )
   LOCAL oBMP

   IF Empty( cBitFile )
      *
   ELSEIF ! hb_FileExists( cBitFile )
      Alert( cBitFile + " not found " )
   ELSE
      oBMP := Win_BMP():New()
      IF oBmp:loadFile( cBitFile )

         oBmp:Draw( oPrn, { 200, 200, 2000, 1500 } )

         // Note: Can also use this method to print bitmap
         //   oBmp:Rect := { 200, 200, 2000, 1500 }
         //   oPrn:DrawBitMap( oBmp )

      ENDIF
      oBMP:Destroy()
   ENDIF

   RETURN
Este e muitos outros exemplos estão na pasta contrib\hbwin do Harbour 2.1
Para testar, basta baixar o Harbour do link:
https://sourceforge.net/projects/harbou ... e/download
Ir para a pasta contrib\hbwin Compilar com hbmk2 testprn.prg
Olhar como é, e correr para o abraço.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Re: Código de barras no modo texto

Mensagem por Jairo Maia »

Caro Itamar,

Primeiro uma correção:
Onde escrevi na mensagem: Win32prn():INI(cPrinter, cDoc)
Leia-se: Win32prn():NEW(cPrinter, cDoc). Houve erro apenas na msg, o fonte testado está correto.

Obrigado. Valew...
Vou fazer os testes, e desde já Abraços.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7929
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Re: Código de barras no modo texto

Mensagem por Itamar M. Lins Jr. »

Ok!
Mas no Harbour por questões de padronização o Viktor mudou alguns nomes de funções.
No harbour é win_prn(), a meu ver está bem mais de acordo, melhor do win32prn(). E quanto aos sistemas 64 bits ?
Teria um nome win64prn() ?

O Viktor é meio cri, cri com essas coisas.

Saudações,
Itamar M. Lisn Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Re: Código de barras no modo texto

Mensagem por Jairo Maia »

Caros Colegas,

Não desprezando as dicas do colega Itamar, que foram muito importantes, mas não consigo resultado, pois usando fontes externas que instalei no Windows, o resultado não é lido pelo leitor, mesmo leitor que lê códigos do mesmo tipo inclusive de meu velho clipper.

Cá estou eu com dúvida no meu dilema de código de barras. Em: \contrib\hbgd\tests tem um exemplo que após verificar pareceu que resolveria um grande problema. Trata-se do exemplo "bartest.prg"

Porém, ao tentar compilar, o hbmk2 retorna a mensagem que não pode encontrar a lib "bgd". Esta lib não existe fisicamente nem no xHarbour.

Resultado: Alguém poderia me dar uma dica do que está havendo?

Abraços
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Código de barras no modo texto

Mensagem por sygecom »

Se for xHarbour posso postar as LIB BGD mais exemplo.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7929
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Re: Código de barras no modo texto

Mensagem por Itamar M. Lins Jr. »

Ola!
Meu amigo o Harbour tem coisa bem melhor e mais simples.
Olha o contrib "HBZEBRA" ai na pasta contrib do Harbour.

Código: Selecionar todos

/*
 * $Id: testwin.prg 15824 2010-11-13 18:57:30Z vszakats $
 */

/*
 * Harbour Project source code:
 *
 * Copyright 2010 Viktor Szakats (harbour.01 syenar.hu)
 * www - http://harbour-project.org
 *
 */

#include "hbzebra.ch"
#include "hbwin.ch"

PROCEDURE Main()
   LOCAL hDC
   LOCAL pDEVMODE := __wapi_DEVMODE_New( "Microsoft XPS Document Writer" )
   LOCAL hOBJECT

   __wapi_DEVMODE_Set( pDEVMODE, {;
      "dmPaperSize"   => WIN_DMPAPER_A4,;
      "dmOrientation" => WIN_DMORIENT_PORTRAIT } )

   hDC := wapi_CreateDC( NIL, "Microsoft XPS Document Writer", NIL, pDEVMODE )
   IF ! Empty( hDC )

      wapi_SetMapMode( hDC, WIN_MM_TEXT )

      IF wapi_StartDoc( hDC, { "lpszDocName" => "(barcode test)" } ) > 0

         wapi_SetBkMode( hDC, WIN_TRANSPARENT )

         IF wapi_StartPage( hDC ) > 0

            hOBJECT := wapi_CreateFont( 96,;
                                        42,;
                                        NIL,;
                                        NIL,;
                                        WIN_FW_NORMAL,;
                                        .F.,;
                                        .F.,;
                                        NIL,;
                                        WIN_ANSI_CHARSET,;
                                        NIL,;
                                        NIL,;
                                        NIL,;
                                        NIL,;
                                        "Arial" )

            wapi_SelectObject( hDC, hOBJECT )

            DrawBarcode( hDC,  20,   1, "EAN13",      "477012345678" )
            DrawBarcode( hDC,  40,   1, "EAN8",       "1234567" )
            DrawBarcode( hDC,  60,   1, "UPCA",       "01234567891" )
            DrawBarcode( hDC,  80,   1, "UPCE",       "123456" )
            DrawBarcode( hDC, 100,   1, "CODE39",     "ABC123" )
            DrawBarcode( hDC, 120,   1, "CODE39",     "ABC123", HB_ZEBRA_FLAG_CHECKSUM )
            DrawBarcode( hDC, 140, 0.5, "CODE39",     "ABC123", HB_ZEBRA_FLAG_CHECKSUM + HB_ZEBRA_FLAG_WIDE2_5 )
            DrawBarcode( hDC, 160,   1, "CODE39",     "ABC123", HB_ZEBRA_FLAG_CHECKSUM + HB_ZEBRA_FLAG_WIDE3 )
            DrawBarcode( hDC, 180,   1, "ITF",        "1234", HB_ZEBRA_FLAG_WIDE3 )
            DrawBarcode( hDC, 200,   1, "ITF",        "12345678901", HB_ZEBRA_FLAG_CHECKSUM )
            DrawBarcode( hDC, 220,   1, "MSI",        "1234" )
            DrawBarcode( hDC, 240,   1, "MSI",        "1234", HB_ZEBRA_FLAG_CHECKSUM + HB_ZEBRA_FLAG_WIDE3 )
            DrawBarcode( hDC, 260,   1, "MSI",        "1234567", HB_ZEBRA_FLAG_CHECKSUM )
            DrawBarcode( hDC, 280,   1, "CODABAR",    "40156", HB_ZEBRA_FLAG_WIDE3 )
            DrawBarcode( hDC, 300,   1, "CODABAR",    "-1234", HB_ZEBRA_FLAG_WIDE3 )
            DrawBarcode( hDC, 320,   1, "CODE93",     "ABC-123" )
            DrawBarcode( hDC, 340,   1, "CODE93",     "TEST93" )
            DrawBarcode( hDC, 360,   1, "CODE11",     "12", HB_ZEBRA_FLAG_WIDE3 )
            DrawBarcode( hDC, 380,   1, "CODE11",     "1234567890", HB_ZEBRA_FLAG_CHECKSUM + HB_ZEBRA_FLAG_WIDE3 )
            DrawBarcode( hDC, 400,   1, "CODE128",    "Code 128")
            DrawBarcode( hDC, 420,   1, "CODE128",    "1234567890")
            DrawBarcode( hDC, 440,   1, "CODE128",    "Wikipedia")
            DrawBarcode( hDC, 460,   1, "PDF417",     "Hello, World of Harbour!!! It's 2D barcode PDF417 :)" )
            DrawBarcode( hDC, 540,   1, "DATAMATRIX", "Hello, World of Harbour!!! It's 2D barcode DataMatrix :)")

            wapi_EndPage( hDC )
         ENDIF
         wapi_EndDoc( hDC )
      ENDIF
   ENDIF

   RETURN

#define _SCALE_ 7.2

PROCEDURE DrawBarcode( hDC, nY, nLineWidth, cType, cCode, nFlags )
   LOCAL hZebra, nLineHeight

   SWITCH cType
   CASE "EAN13"      ; hZebra := hb_zebra_create_ean13( cCode, nFlags )   ; EXIT
   CASE "EAN8"       ; hZebra := hb_zebra_create_ean8( cCode, nFlags )    ; EXIT
   CASE "UPCA"       ; hZebra := hb_zebra_create_upca( cCode, nFlags )    ; EXIT
   CASE "UPCE"       ; hZebra := hb_zebra_create_upce( cCode, nFlags )    ; EXIT
   CASE "CODE39"     ; hZebra := hb_zebra_create_code39( cCode, nFlags )  ; EXIT
   CASE "ITF"        ; hZebra := hb_zebra_create_itf( cCode, nFlags )     ; EXIT
   CASE "MSI"        ; hZebra := hb_zebra_create_msi( cCode, nFlags )     ; EXIT
   CASE "CODABAR"    ; hZebra := hb_zebra_create_codabar( cCode, nFlags ) ; EXIT
   CASE "CODE93"     ; hZebra := hb_zebra_create_code93( cCode, nFlags )  ; EXIT
   CASE "CODE11"     ; hZebra := hb_zebra_create_code11( cCode, nFlags )  ; EXIT
   CASE "CODE128"    ; hZebra := hb_zebra_create_code128( cCode, nFlags ) ; EXIT
   CASE "PDF417"     ; hZebra := hb_zebra_create_pdf417( cCode, nFlags ); nLineHeight := nLineWidth * 3 ; EXIT
   CASE "DATAMATRIX" ; hZebra := hb_zebra_create_datamatrix( cCode, nFlags ); nLineHeight := nLineWidth ; EXIT
   ENDSWITCH

   nY *= _SCALE_
   nLineWidth *= _SCALE_

   IF hZebra != NIL
      IF hb_zebra_geterror( hZebra ) == 0
         IF EMPTY( nLineHeight )
            nLineHeight := 16
         ENDIF
         wapi_TextOut( hDC,  40 * _SCALE_, nY, cType )
         wapi_TextOut( hDC, 150 * _SCALE_, nY, hb_zebra_getcode( hZebra ) )
         hb_zebra_draw_wapi( hZebra, hDC, wapi_CreateSolidBrush( 0 ), 300 * _SCALE_, nY, nLineWidth, nLineHeight * _SCALE_ )
      ELSE
         ? "Type", cType, "Code", cCode, "Error", hb_zebra_geterror( hZebra )
      ENDIF
      hb_zebra_destroy( hZebra )
   ELSE
      ? "Invalid barcode type", cType
   ENDIF

   RETURN

STATIC FUNCTION hb_zebra_draw_wapi( hZebra, hDC, hBrush, ... )

   IF hb_zebra_GetError( hZebra ) != 0
      RETURN HB_ZEBRA_ERROR_INVALIDZEBRA
   ENDIF

   RETURN hb_zebra_draw( hZebra, {| x, y, w, h | wapi_FillRect( hDC, { Int( x + .5 ), Int( y + .5 ), Int( x + .5 ) + Int( w ), Int( y + .5 ) + Int( h ) + 1 }, hBrush ) }, ... )
Não indiquei da outra véz porque tinha esquecido.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7929
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Re: Código de barras no modo texto

Mensagem por Itamar M. Lins Jr. »

E outra coisa.
Se não for usar a SQLLIB do xHarbour não, é uma contra mão ficar usando o xHarbour.
O Harbour está muito, muito na frente do xHarbour, nem se compara.
Não é só essas coisas mais superficiais que o Harbour é melhor, mas na aceitação, no port para outras plataformas, agora ele já faz parte é mantido por outra pessoa no FREEBSD, Android, WinCE, OSX etc... e o xHarbour está todo engessado ao xHarbour.com que é só windows.
Com bons manuais para usar a nova HBQT que roda em vários OS's e o mais importante podemos conversar com todos eles que obtemos respostas rápidas e conseguimos solucionar diversos problemas rapidamente.

Sobre a GD é só ler o INSTALL que lá ensina como instalar a GDLIB, não precisa mudar para o xHarbour só por isso.

Código: Selecionar todos

//adicionar 
SET  HB_WITH_GD=C:\gd\include
Lugar para Baixar a GD
HB_WITH_GD - GD Graphics Library [multiplatform, free, open-source]
http://www.boutell.com/gd/
Depois é só ir na pasta contrib\hbgd
hbmk2 hbgd.hbp

Veja que estou ensinando a pessoa, programador ficar independente, de A ou B ficar mandando libs sem ensinar como fazer para obte-la.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Re: Código de barras no modo texto

Mensagem por Jairo Maia »

Olá Pessoal,

Sygecom, obrigado, mas naquele mesmo dia eu a consegui aquela Lib com um amigo, mas decidi permanecer em Harbour, por uma questão pessoal, me simpatizei mais com Harbour.

Itamar, ::)) , vou continuar com Harbour pelos motivos acima... Valew
Quanto a sua sugestão, acabei via estudar os exemplos achando a contrib Zebra. Fiz os testes, imprimi e deu resultado, o leitor lê os códigos.

Estou estudando agora como faço saida para impressora. Retomo hoje os testes e espero conseguir. Mesmo assim, muito obrigado pela sua presteza, me ajudou muito. Mas não se iluda, creio que vou perturbar bastante.

Abraços, Obrigado
Jairo
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Código de barras no modo texto

Mensagem por sygecom »

Olá Amigo,
Em momento algum eu disse para usar um ou outro, na verdade estou nem ai para o que o pessoal está usando o importante é o resultado final para nossos clientes.
Apenas disse: Se for xHarbour posso postar as LIB BGD mais exemplo.

Itamar,
Relaxa, eu o pessoal vai usar o que achar melhor para eles...e não é SQLLIB e sim SQLRDD
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Re: Código de barras no modo texto

Mensagem por Jairo Maia »

Caro Sygecom,

Mas foi assim que entendi. Caso eu tenha passado uma idéia errada, peço desculpas, pois estou migrando meus sistemas e precisarei de toda ajuda possivel do pessoal do forum, incluindo a sua quando vc puder.

Abraços
Jairo
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Código de barras no modo texto

Mensagem por sygecom »

Beleza Jairo, Mete ficha ai que estou a disposição, vai postando as duvidas caso apareça, eu também uso Harbour. Grande Abraço.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Re: Código de barras no modo texto

Mensagem por Jairo Maia »

Olá colegas,

Gostaria de saber se é possível definir se a impressora escolhida é matrial.

Usando Win_PrinterList(.t.), tenho uma matriz com 4 informações:
1 - nome da impressora
2 - porta
3 - se local ou da rede
4 - driver

Pelo driver eu poderia arriscar se DeskJet ou LaserJet, mas as matriciais variam, e não tenho como definir se é matricial ou impressora de arquivo. Se alguém tiver alguma dica, eu agradeceria, pois gostaria de evitar a pergunta ao usuario quando não for DeskJet ou LaserJet.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Responder