En esta oportunidad necesito de su apoyo ya que estoy generando un código PDF417 usando OCX y se imprime en un archivo .bmp
Eso lo hago sin problemas, pero el inconveniente se presenta al intentar delimitar las dimensiones de ancho y alto.
El fuente es:
- Code: Select all Expand view
- #include "fivewin.ch"
static owinmain
REQUEST HB_LANG_ES // Que todos los mensajes los saque en español
REQUEST HB_LANG_ESWIN
//REQUEST HB_CODEPAGE_ES
REQUEST HB_CODEPAGE_ESWIN // Los codigos de pagina en español
function Main
LOCAL odlg
local oMenu
hb_langselect("ESWIN") //Selecciona lenguaje español
HB_CDPselect( "ESWIN" )
DEFINE window owinmain from 1,1 TO 30,100 title "probando"
activate window owinmain ON init (verdialogo())
return nil
//---------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------
PROCEDURE verdialogo()
LOCAL odlg, oBmp
LOCAL oactivex
oactivex := CreateObject( "PDF417BarcodeControl.PDF417Barcode" )
//oactivex:autosize:=.f.
oactivex:dotsize:= 2 //10
oactivex:ErrorLevel := 5
oactivex:drawwithfixedcolumn:=.t.
//oactivex:drawwithfixedrow:=.t.
//oactivex:fixedcolumn:= 4 //9 mínimo 6.7 milesimas de pulgada
//oactivex:fixedrow:= 10 //3 mínimo 6.7 / 3 milesimas de pulgada
//oactivex:barcodeheight:= 1 // 5
//oactivex:barcodewidth:= 1 // SE SUPONE QUE ESTO ES PARA DARLES LAS DIMENSIONES, PERO NO RESPONDE
oactivex:lineheight:= 1
oactivex:lines :=[<carácteres a codificar>]
nuevobitmap(oactivex, 450,250)
RETURN NIL
//---------------------------------------------------------------------------------------------------------------------
PROCEDURE nuevobitmap(oactivex,nwidth,nheight)
local hBmpOld
local hDCDesk := GetDC( GetDesktopWindow() )
local hDCMem := CreateCompatibleDC( hDCDesk )
local hBrush := CreateSolidBrush( 0 )
local hBack := CreateSolidBrush( CLR_WHITE )
LOCAL hcodebar
LOCAL hDib,nmanejador
LOCAL cdatos:="BM"
hCodeBar = CreateCompatibleBitMap( hDCDesk, nWidth, nHeight )
hBmpOld = SelectObject( hDCMem, hCodeBar )
FillRect( hDCMem, {0 , 0 , nHeight , nWidth }, hBack )
//hb_zebra_draw( ::hData, {| x, y, w, h | FillRect( hDCMem, { y, x, y + h, x + w }, hBrush ) }, 15, 10, ::nWidthCode, ::nHeightCode )
oactivex:drawto( hDCMem, 5 , 5 ,1,.f. )
SelectObject( hDCMem, hBmpOld )
ReleaseDC( GetDesktopWindow(), hDCDesk )
DeleteDC( hDCMem )
DeleteObject( hBrush )
DeleteObject( hBack )
hDib := DibFromBitmap( hCodeBar )
DibWrite( "ppp2.bmp" , hDib )
GloBalFree( hDib )
nmanejador:=FOpen("ppp2.bmp",1)
FSeek(nmanejador,0,0)
FWrite(nmanejador,@cdatos,2)
FClose(nmanejador)
MSGinfo("ARCHIVO CREADO SATISFACTORIAMENTE")
return NIL
Espero me puedan guiar en lo que me falta o estoy haciendo mal.
Gracias desde ya.