estou usando o exemplo da biblioteca pra fazer testes com códigos de barras, no código do exemplo está funcionando redondo ,mas no meu código está acusando erro avisando que a variavel WIN_DMPAPER_A4 não existe, ainda não consegui ver o que está faltando,
se alguém puder dar uma olhada pra mim no código eu agradeço.
Código: Selecionar todos
// testes com cod.barras
#include "hbzebra.ch"
#include "hbwin.ch"
#define _SCALE_ 7.2
function main()
setmode(25,80)
local hObject
local hDC
local pDEVMODE
local cPrinter
LOCAL hOBJECT
private cOrdem:="615200"
@ 00,00 clear to 24,79
//ImpCodBarra(cOrdem,20)
//static function ImpCodBarra(cTextoBarra,cTamFonte)
cPrinter:= Win_PrinterGetDefault()
pDevMode:= __wapi_DEVMODE_New( cPrinter )
__wapi_DEVMODE_Set( pDEVMODE, {;
"dmPaperSize" => WIN_DMPAPER_A4,;
"dmOrientation" => WIN_DMORIENT_PORTRAIT } )
hDC := wapi_CreateDC( NIL, cPrinter, NIL, pDEVMODE )
if !empty(hDC)
wapi_SetMapMode( hDC, WIN_MM_TEXT )
wapi_SetBkMode( hDC, WIN_TRANSPARENT )
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,"CODE39", cOrdem)
// DrawBarcode( hDC, 20, 1, "EAN13", "477012345678" )
wapi_EndPage( hDC )
endif
PROCEDURE DrawBarcode( hDC, nY, nLineWidth, cType, cCode, nFlags )
LOCAL hZebra, nLineHeight, cTxt
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
//CASE "QRCODE" ; hZebra := hb_zebra_create_qrcode( 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 )
IF Len( cTxt := hb_zebra_getcode( hZebra ) ) < 20
wapi_TextOut( hDC, 150 * _SCALE_, nY, cTxt )
ENDIF
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 ) }, ... )
return nil


