Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Lazarus, FreePascal, Kylix, etc. (https://www.clubdelphi.com/foros/forumdisplay.php?f=14)
-   -   ¿Como imprimir una imagen BMP en Lazarus 1.2.4? (https://www.clubdelphi.com/foros/showthread.php?t=86782)

rrf 02-10-2014 20:44:30

¿Como imprimir una imagen BMP en Lazarus 1.2.4?
 
Hola.

¿Como puedo imprimir una imagen BMP en Lazarus 1.2.4?.

A ver si alguien conoce un enlace a alguna explicación al respecto o cualquier información que me pueda servir.

He visto y probado varios ejemplos, pero son de Delphi y no sirven (o no he sabido usarlos).

Gracias de antemano.

ecfisa 02-10-2014 23:35:09

Hola rrf.

Primero agrega el paquete Printer4Lazarus como se indica en este enlace: Using the printer/es

Te pongo el código de la prueba:
Código Delphi [-]
...
uses Printers;     
...
procedure TForm1.Button1Click(Sender: TObject);
var
  bmp: Graphics.TBitmap;  // Si se incluye Windows es necesario especificar: Graphics.
begin
  bmp:= Graphics.TBitmap.Create;
  try
    bmp.LoadFromFile('C:\pruebas\Imagen.bmp');
    try
      Printer.BeginDoc;
      Printer.Canvas.Draw(1200, 800, bmp);
    finally
      Printer.EndDoc;
    end;
  finally
    bmp.free;
  end;
end;
Imprime el bitmap sin errores pero creo que hay cosas para ajustar, igual espero que te sirva de base. La verdad es que sólo he realizado algunas pruebas en Lazarus así que dejo los detalles importantes a los expertos.

Saludos :)

rrf 06-10-2014 15:34:06

Hola otra vez.

Y gracias Ecfisa, por tu respuesta.

Aunque debo aclarar que acabo de darme cuenta de que no he dicho en la pregunta que estoy USANDO LINUX MINT 17 y supongo que se podría suponer que lo hacía en Windows.

Bueno, lo he probado y no funciona. Concretamente el problema empieza en la línea:
Printer.BeginDoc;

Ahí debe saltar una excepción y se acabó.

Los mensajes que aparecen son:
Si se hace desde el programa directamente:
'El proyecto project1 ha lanzado una excepción de la clase "External: SIGSEGV"'
'En archivo 'printers.pas' en línea 517'

Si se hace desde el IDE:
'Access violation'
'Press OK to ignore and risk data corruption'
'Press cancel to kill the program'

Ahora que he aclarado que uso Linux, a ver si alguien sabe como hacerlo.

Salu2 a to2.

rrf 07-10-2014 11:30:54

Hola de nuevo.

Ecfisa, el código que facilitaste sí que funcionaba correctamente. El problema estaba en que no había añadido el paquete Printer4Lazarus a los requerimientos del proyecto.

Una vez que lo hice, siguiendo las instrucciones del enlace "Using the printer/es" en
http://wiki.freepascal.org/Using_the_printer/es
lo pude imprimir sin problemas. También hay 2 ejemplos en esa página que se pueden emplear y que me funcionaron bien.

Creo que la consulta que hice está resuelta.

Gracias y saludos.

ecfisa 07-10-2014 13:21:59

Hola rrf.

Me alegra que lo hayas solucionado. ^\||/

Saludos :)


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

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