Hola.
En nuestra aplicación hacemos algo parecido a lo que quieres conseguir creando un TImage en un formulario y creando un canvas propio asignado a esa imagen con lo cual lo que imprimas en el canvas se reflejará en ella.
Código Delphi
[-]
procedure TForm1.Button1Click(Sender: TObject);
var
MiCanvas: TCanvas;
begin
MiCanvas := Image1.Canvas;
MiCanvas.Textout(10,10,'Hola mundo')
end;
cuando crees el canvas lo puedes hacer asignado a la impresora o a la imagen con lo que te aparecerá por un lado u otro sin cambiar el código de impresión.
Saludos