Échale un vistazo a la clase TPrinter y a la propiedad Canvas que permite acceder al canvas directamente.
Haz un par de pruebas simples para ver si por ese camino tienes salida.
Un ejemplo que puedes encontrar en Delphi es el siguiente:
Código Delphi
[-]
procedure TForm1.Button1Click(Sender: TObject);
begin
with Printer do
begin
BeginDoc;
Canvas.TextRect(Rect(200,200,PageWidth-200,PageHeight-200),
200, 200, Memo1.Lines.Text);
EndDoc;
end;
end;
Puedes hacer pruebas con
TextOut y
TextRect de TCanvas para pintar texto en una posición determinada.