Hola a todos. Es la primera vez que publico un tema, pero soy seguidor desde hace bastante tiempo del foro.
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:
Espero me puedan guiar en lo que me falta o estoy haciendo mal.
Gracias desde ya.
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:
#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 NILEspero me puedan guiar en lo que me falta o estoy haciendo mal.
Gracias desde ya.