Código de barras no modo texto
Moderador: Moderadores
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
Código de barras no modo texto
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...
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)
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)
- Itamar M. Lins Jr.
- 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
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.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
Re: Código de barras no modo texto
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
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)
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)
- Itamar M. Lins Jr.
- 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
Ola!
Usando o Harbour:
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.
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
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.
Itamar M. Lins Jr.
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
Re: Código de barras no modo texto
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.
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)
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)
- Itamar M. Lins Jr.
- 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
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.
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.
Itamar M. Lins Jr.
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
Re: Código de barras no modo texto
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
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)
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)
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: Código de barras no modo texto
Se for xHarbour posso postar as LIB BGD mais exemplo.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
- Itamar M. Lins Jr.
- 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
Ola!
Meu amigo o Harbour tem coisa bem melhor e mais simples.
Olha o contrib "HBZEBRA" ai na pasta contrib do Harbour.
Não indiquei da outra véz porque tinha esquecido.
Saudações,
Itamar M. Lins Jr.
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 ) }, ... )
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Itamar M. Lins Jr.
- 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
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.
Lugar para Baixar a GD
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.
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
Depois é só ir na pasta contrib\hbgdHB_WITH_GD - GD Graphics Library [multiplatform, free, open-source]
http://www.boutell.com/gd/
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.
Itamar M. Lins Jr.
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
Re: Código de barras no modo texto
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
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)
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)
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: Código de barras no modo texto
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
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
xHarbour.org + Hwgui + PostgreSql
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
Re: Código de barras no modo texto
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
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)
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)
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: Código de barras no modo texto
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
xHarbour.org + Hwgui + PostgreSql
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
Re: Código de barras no modo texto
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.
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)
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)