Dimensionar PDF417

Dimensionar PDF417

Postby Elstuardo » Wed Feb 06, 2013 6:23 am

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:
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&#058;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&#058;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.
Elstuardo
 
Posts: 1
Joined: Sun Sep 23, 2012 4:13 am

Re: Dimensionar PDF417

Postby elmoiquique » Tue Feb 19, 2013 11:01 pm

Este programa utilizo para generar un pdf417.. aver si te sirve

Code: Select all  Expand view
#include "fivewin.ch"
#include "codebar.ch"

static oCode, ovent

FUNCTION GENERAPDF417(pdf_tipo,pdf_acepta,pdf_siglo)

 LOCAL oMenu
   
 oCode := TCodeBars():New()  
 c_pdf417:=pdf_tipo+pdf_acepta+pdf_siglo
   
 BuildPdf417( CODEBAR_PDF417, c_pdf417 )

RETURN NIL

FUNCTION BuildPdf417( nCode, cCode, nFlags )

  DEFAULT nFlags := 1
   
  oCode:Reset()
  if nCode < CODEBAR_PDF417
   oCode:nHeightCode = oCode:nHeight - 50
   oCode:nWidthCode  = 1.5                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
  else
   oCode:nHeightCode = 5
   oCode:nWidthCode =  2
  endif
  oCode:SetType( nCode )
  oCode:SetCode( cCode )
  oCode:SetFlags( nFlags )
  oCode:Build()

  hDib := DibFromBitmap( ocode:hcodebar)
  DibWrite( cpsve4+"\"+cCode+".bmp" , hDib )

  GloBalFree( hDib )
//  ovent:ReleaseDC()
   
RETURN NIL  



Fivewin-Xharbour 11.07, Iquique, Chile
elmoiquique
 
Posts: 310
Joined: Wed May 16, 2007 9:40 pm
Location: Region de Ñuble, Chile


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 60 guests