procedure TForm1.Button1Click(Sender: TObject);
var
v, h, y, x : integer;
PixelsPerInchX, PixelsPerInchY :integer;
begin
if Printer.Printers.Count = 0 then
begin
MessageDlg('Tiskárna není přítomna!', mtError, [mbOK],0);
Exit;
end;
Printer.BeginDoc;
PixelsPerInchX := GetDeviceCaps(Printer.Canvas.Handle, LOGPIXELSX);
PixelsPerInchY := GetDeviceCaps(Printer.Canvas.Handle, LOGPIXELSY);
y := 0;
v := (10 * PixelsPerInchX) div 254; //přepočítá rozlišení tiskárny
h := (10 * PixelsPerInchY) div 254;
for x := 1 to StringGrid1.rowcount-1 do
begin
application.processmessages;
with printer.canvas do
begin
pen.color := clBlack;
font.height := 7*h;
font.style := [fsBold];
textout(v*10,(7+y)*h, StringGrid1.cells[1,x]);
brush.Style := bsclear;
RECTANGLE(v*2,(5+y)*h,v*100,(15+y)*h);
end;
y := y+10;
end;
printer.EndDoc;
end;