Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Imprimir jpg's (https://www.clubdelphi.com/foros/showthread.php?t=29849)

ElDioni 02-02-2006 16:59:43

Imprimir jpg's
 
tengo el siguiente codigo

Código Delphi [-]
procedure TFrmDibujo.Button1Click(Sender: TObject);
var
  jp: TJPEGImage;  //Requires the "jpeg" unit added to "uses" clause.
begin
  jp := TJPEGImage.Create;
  jp.LoadFromFile(frmdibujo.caption);
  try
    printer.BeginDoc;
    printer.canvas.Draw(0,0,jp);
    printer.EndDoc;
  finally
    jp.free;
  end;
end;

me suelta un error de compilacion en el printer canvas donde dice que:

[Error] Unit2.pas(37): Incompatible types: 'TGraphic' and 'TJPEGImage'

alguien puede decirme porque es esto
gracias por adelantado

dec 02-02-2006 17:06:04

Hola,

Prueba a ver con esto y nos cuentas a ver:

Código Delphi [-]
printer.canvas.Draw(0, 0, TGraphic(jp));

roman 02-02-2006 17:19:19

Un error muy extraño siendo TJPegImage descendiente de TGraphic, al menos en Delphi 7 que es donde lo acabo de probar tal cual y funciona sin problemas.

// Saludos

dec 02-02-2006 17:24:53

Hola,

Pues llevas toda la razón Román. Sabes que no tengo impresora, y no he podido comprobar si la impresión se llevaba a cabo o por lo menos ver una vista previa a la misma que mostrar que la cosa funcionara bien. Sin embargo, no obtuve el error que arriba comenta el compañero. Y es el caso que, ahora que lo pienso, efectivamente, es una tontería el código que propongo, puesto que, efectivamente, ese objeto ya desciende además directamente de "TGraphic"... un lapsus. ;)

roman 02-02-2006 17:26:53

Sin embargo a él le marca dicho error. Quizá, aunque me parecería muy raro, alguna versión anterior de Delphi manejase distinto los jpg.

// Saludos

ElDioni 02-02-2006 17:54:43

gracias por responder tan pronto he probado el cast:

Código Delphi [-]
procedure TFrmDibujo.Button1Click(Sender: TObject);
var
  jp: TJPEGImage;  //Requires the "jpeg" unit added to "uses" clause.
begin
  jp := TJPEGImage.Create;
  jp.LoadFromFile(frmdibujo.caption);
  try
    printer.BeginDoc;
    printer.canvas.Draw(0,0,tgraphic(jp));
    printer.EndDoc;
  finally
    jp.free;
  end;
end;

y me suelta lo siguiente:

[Error] Unit2.pas(38): Incompatible types: 'QGraphics.TGraphic' and 'Graphics.TGraphic'

ElDioni 02-02-2006 17:56:55

Se me olvidaba estoy usando delphi 7

ElDioni 02-02-2006 18:00:34

Perdonen pero se me ha acabado el turno de trabajo, hasta mañana no podre decirles si alguna de las soluciones que me puedan dar ahora funciona o no, les digo esto por si esperan mi contestacion de si funciona o no, gracias por su tiempo y mañana les contare

roman 02-02-2006 18:01:43

¡Ahhhhh! Pues es que estás mezclando las bibliotecas CLX con las VCL. Quita las referencias a QGraphics. Me parece que estás usando la unidad QPrinters en lugar de Printers.

// Saludos

ElDioni 03-02-2006 11:18:14

Gracias Roman eso era justo lo que me estaba pasando, gracias de nuevo

ElDioni 03-02-2006 11:28:26

Ahora si que me lo imprime pero el dibujo me sale reducido con respecto al original, como podria hacer que se imprimiera a tamaño real el jpg

ElDioni 07-02-2006 09:53:28

Al final la solucion que he tomado ha sido cargar con el winexec el paint y pasarle como parametro la ruta del dibujo que queria imprimir, ya el paint me lo imprime a tamaño normal, que se le va a hacer, bueno gracias por vuestra ayuda.


La franja horaria es GMT +2. Ahora son las 18:51:51.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi