FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para CA-Clipper Imprimir JPG de fondo de documento
Posts: 35
Joined: Thu Oct 06, 2005 10:00 PM
Imprimir JPG de fondo de documento
Posted: Sat Nov 19, 2005 09:46 PM

Hola de nuevo amigos:

Tomando el ejemplo de SAMPLES\COREL.PRG (// Using CorelDraw to generate printing templates!!!), actualmente imprimo con oPrn:ImportWMF( ".\PREIMP\PR-103-1.Wmf" ) el fondo del documento y a través de oPrn:CmSay( 7.4, 5, SUBSTR(oDbf0:CSIPF,2,10),oFont) imprimo el dato que deseo en la posición del documento, y todo va bien y perfecto.

El problema que se me presenta es que el cada fichero WMF es muy pesado (aproximadamente unos 4100 kb!!) y en cambio si es en JPG el tamaño es de solo unos 300 Kb.

Para un trámite se requiere entre 10 y 16 documentos distintos con lo cual al final la memoria se va agotando y el preview hay veces que el documento no lo carga.

Además tengo en el directorio donde tengo los impresos unos 46 documentos lo que al final el directorio de preimpresos en formato WMF ocupa ya la friolera de cerca de 200 MB!!!!.

Si estos preimpresos estuvieran en formato JPG sólo ocuparían unos 2.xMB en dicho directorio.

Pasando los documentos a formato JPG y poniendo oPrn:SayImage( ".\PREIMP\PR-103-1.jpg" )me da error al imprimir y si pongo oPrn:SayBmp( ".\PREIMP\PR-103-1.jpg" ) no da error pero tampoco lo carga.

¿Alguien puede orientar y decirme los pasos que debo realizar para poder imprimir los JPG, si es que se puede?

Saludos

Posts: 35
Joined: Thu Oct 06, 2005 10:00 PM
Imprimir JPG de fondo de documento
Posted: Thu Nov 24, 2005 09:13 PM

Saludos a todos.

Alguna ayuda, por favor!!! o diganme si no es posible, a ver que puedo hacer entonces.

Gracias.

Posts: 33
Joined: Mon Oct 10, 2005 12:49 PM
Imprimir JPG de fondo de documento
Posted: Fri Nov 25, 2005 10:30 AM

Bueno, como te veo un poco desesperado te comentare que voy a solidarizarme contigo.

Yo tampoco se como hacerlo, por eso no he posteado.

Te aconsejo, que este tipo de dudas las pongas tambien en el subforo de Harbour, la gente esta mas activa alli y al fin y al cabo, es una consulta general.

Nos leemos!!

FW 2.5 + Cl 5.3 + Blk 7.0



Sin mas ...
Posts: 383
Joined: Tue Oct 11, 2005 01:01 PM
Imprimir JPG de fondo de documento
Posted: Fri Nov 25, 2005 01:03 PM

Yo se como hacerlo, pero no tengo el codigo aqui, apenas este en mi casa te contesto.

Creo que era con oPrn:SayImage(), o algo asi...

Saludos

Pedro Gonzalez
Posts: 610
Joined: Wed Oct 19, 2005 08:20 PM
Imprimir JPG de fondo de documento
Posted: Sun Nov 27, 2005 07:11 PM
El mismo problema tuve hace tiempo con este asunto y alguien del foro me ayudó. No puedo aclararte mucho sobre el asunto pues hace más de un año que lo implementé, pero lo más importante es que funciona. Abajo te pego unos trozos de código.
Tienes que tener freeimagen.dll en la carpeta del ejecutable. Después debes tener en el prg:

#xcommand REDEFINE Image [ <oBmp> ] ;
[ ID <nId> ] ;
[ <of: OF, WINDOW, DIALOG> <oWnd> ] ;
[ <resource: NAME, RESNAME, RESOURCE> <cResName> ] ;
[ <file: FILE, FILENAME, DISK> <cBmpFile> ] ;
[ <lClick: ON ClICK, ON LEFT CLICK> <uLClick> ] ;
[ <rClick: ON RIGHT CLICK> <uRClick> ] ;
[ <scroll: SCROLL> ] ;
[ <adjust: ADJUST> ] ;
[ CURSOR <oCursor> ] ;
[ MESSAGE <cMsg> ] ;
[ <update: UPDATE> ] ;
[ WHEN <uWhen> ] ;
[ VALID <uValid> ] ;
=> ;
[ <oBmp> := ] TImage():ReDefine( <nId>, <cResName>, <cBmpFile>,;
<oWnd>, [\{ |nRow,nCol,nKeyFlags| <uLClick> \}],;
[\{ |nRow,nCol,nKeyFlags| <uRClick> \}],;
<.scroll.>, <.adjust.>, <oCursor>, <cMsg>, <.update.>,;
<{uWhen}>, <{uValid}> )




Para visualizar la imagen:
///////////////////////////////////////////////////////////////////////////
DEFINE DIALOG oDlg RESOURCE "IMAGEN2"
oDlg:lHelpIcon:=.F.


REDEFINE IMAGE oImagen FILENAME (cFImagen) ID 800;
OF oDlg ADJUST UPDATE //SCROLL

//
ACTIVATE DIALOG oDlg CENTER ON INIT oDlg:End()

//
Para imprimir la imagen e imprimir texto encima:
oPrn:StartPage()
//PAGE
//
IF lLImagen
oImagen:LoadImage(,cFImagen)
oPrn:SayImage( 0, 0, oImagen,4800,6800 )
ENDIF
//
IF lLTexto
cTexto:=Memoread(cFTexto)
nLineasTexto:=MlCount(cTexto,75)
//
FOR i := 1 TO nLineasTexto
cLineaActual:=MemoLine(cTexto,75,i,,.F.)
oPrn:CmSay(nLin+0.5,1, cLineaActual, oFont1)
nLin=nLin+0.5
NEXT
//
ENDIF
//
oPrn:CmSay((aF[1,1]+nDV)/10, (aF[1,2]+nDH)/10, D1, oFont1)
oPrn:CmSay((aF[2,1]+nDV)/10, (aF[2,2]+nDH)/10, D2, oFont1)
oPrn:CmSay((aF[3,1]+nDV)/10, (aF[3,2]+nDH)/10, D3, oFont1)
oPrn:CmSay((aF[4,1]+nDV)/10, (aF[4,2]+nDH)/10, D4, oFont1)
oPrn:CmSay((aF[5,1]+nDV)/10, (aF[5,2]+nDH)/10, D5, oFont1)
oPrn:CmSay((aF[6,1]+nDV)/10, (aF[6,2]+nDH)/10, D6, oFont1)
//

//ENDPAGE
oPrn:EndPage()
//
Un saludo,

Manuel



xH 1.2.3, FWH 23.07 32 bits, BC++ 7.4, xVerce CW 1.0, PellesC
Posts: 35
Joined: Thu Oct 06, 2005 10:00 PM
Imprimir JPG de fondo de documento
Posted: Sun Nov 27, 2005 10:45 PM

Gracias Chantiel, Pymsoft y Manuel Aranda.

Mañana lo probaré a ver si me sale y ya les comento.

Un saludo

Posts: 383
Joined: Tue Oct 11, 2005 01:01 PM
Imprimir JPG de fondo de documento
Posted: Wed Nov 30, 2005 09:16 PM

Bueno, tarde pero llegué:

En el lugar de la impresion donde desees imprimir tu imagen, luego de crear el objeto oPrn, etc.

cImmage := "TUIMAGEN.JPG"
nImgWidth := 540
nImgHeight := 360
nImgRaster := 8913094 // SRCAND

          oImage := TImage():New( , , , , , cImmage , , oWnd )
          oPrn:SayImage( 0, 0, oImage, nImgWidth, nImgHeight, nImgRaster )
          oImage:end()

// DE TODO LO QUE PROBE, LO MEJOR EN nImgRaster (para lo que yo necesitaba) es hacer un SRCAND, disculpa la info en italiano, pero la busqué en esta lengua en su epoca ;-)

RASTER -->

SRCCOPY = &HCC0020 32 permette di copiare pari-pari l'intera immagine oppure una selezione della stessa
SRCAND = &H8800C6 8913094 combina i pixel dell'immagine di destinazione con quelli dell'immagine di partenza usando l'operatore Booleano AND
SRCINVERT = &H660046 6684742 combina i pixel dell'immagine di destinazione con quelli dell'immagine di partenza usando l'operatore Booleano XOR
SRCPAINT = &HEE0086 15597702 combina i pixel dell'immagine di destinazione con quelli dell'immagine di partenza usando l'operatore Booleano OR
SRCERASE = &H4400328 71303976 inverte l'immagine di destinazione e la combina con l'immagine di partenza usando l'operatore Booleano AND
WHITENESS = &HFF0062 16711778 colora di bianco l'immagine di destinazione
BLACKNESS = &H42 66 colora di nero l'immagine di destinazione

Espero que te sirva.

Pedro Gonzalez

Continue the discussion