Tengo un problema al imprimir una imagen usando la clase TPRINT,
Resulta que se desea imprmir unas fotos entre dos parrafos de texto de un documento , pero simpre sucede que al intentar una primera vez, la impresion de la foto sale movida, pero si vulevo a intentar la impresion (sin salir del programa) la impresion sale correcta, a que se puede deber?
Adjunto como referencia algunos segmentos de codigo para que observen que hago.
Gracias
Lubin
- Code: Select all Expand view
***** FACTORES PARA EL TAMAÑO DE LA IMAGEN (FOTOS RECTANGULARES )
LOCAL oPrn && Objeto de impresion
LOCAL knAnchoCM:= 21.05 &&- Ancho de pagina en cms. Fisico
LOCAL knLargoCM:= 29.70 &&- Largo de página en cms. Fisico
LOCAL knFilaPag:= 80.00 && Nro Base de Fila de Pagina
LOCAL knColuPag:= 141.70 && Nro Base de Columnas de Pagina
LOCAL oImage
LOCAL xAlt:=16 && 12
LOCAL xAnc:=50
oImage:=TImage():define( , vFotoLine[nFor][1] )
***************************** INICIO DE REPORTE FREPPRINT ****************
*1. Ajuste de Tamaño de la Hoja Fisica
PrnSetSize(knAnchoCM*100, knLargoCM*100)
*2. Creo objeto tprinter
PRINT oPrn TITLE XFILENAME FROM USER
* 3. Establezco Orientacion de la Hoja
IF lLnds
oPrn:SetLandscape()
ENDIF
* 4. Establezco las copias
oPrn:SetCopies(1)
*aqui se impime la imagen en la posisicon nlinea=10,columna=80
RPrint_JPG(0010,080 ,xAnc,xAlt,oImage,oPrn,knFilaPag,knColuPag)
.....
......
........
FUNCTION RPrint_JPG(nFila,nCol,nAncho,nAlto,xBitmap,oPrn,knFilaPag,knColuPag)
*Funcion para imprimir Imagenes en formato JPEG con relacion a la funcion RPrintSay.
*Calcula las coordenas de la imagen con knFilaPag/knColuPag.
LOCAL knAnchoCM := 21.05 && Ancho de pagina en cms. Fisico
LOCAL knLargoCM := 29.70 && Largo de página en cms. Fisico
*Calculando coordenadas
LOCAL ejeY := knLargoCM / knFilaPag
LOCAL ejeX := knAnchoCM / knColuPag
*Calculamos las posiciones de la imagen en relacion a las Filas/Columnas del reporte...
LOCAL xArriba := ejeY * nFila
LOCAL xIzq := ejeX * nCol
LOCAL xAncho := ejeX * nAncho
LOCAL xAlto := ejeY * nAlto
*Mandamos a imprimir..
RPrint_SayImg( xArriba , xIzq, xAncho,xAlto, xBitmap,oPrn)
RETURN NIL
FUNCTION RPrint_SayImg(nArriba,nIzq,nAncho,nAlto,xBitmap,oPrn)
**********************************************************************
*Funcion que permite imprimir una imagen jpg en las coordenadas indicadas
Local xCor := {}
LOCAL nPixWidth, nPixHeight
xCor := oPrn:Cmtr2Pix(nArriba,nIzq)
// Pasamos nAncho y nAlto a Pulgadas
nAncho := nAncho/2.54
nAlto := nAlto /2.54
nPixWidth := INT(oPrn:nLogPixelY()*nAncho)
nPixHeight := INT(oPrn:nLogPixelX()*nAlto)
oPrn:SayImage(xCor[1],xCor[2],xBitmap,nPixWidth ,nPixHeight)
RETURN NIL