procedure TForm1.PrintButtClick(Sender: TObject);
const
{Column left positions in inches}
c_Col1=0.5;
c_Col2=2;
c_Col3=3.5;
var
LRowHeight:integer;
LY:integer; {Current vertical position}
LPPIX:integer;
i:integer;
begin
with Printer do
begin
BeginDoc;
try
{Initialise Canvas}
Canvas.Font.Name:='Arial';
Canvas.Font.Size:=12;
Canvas.Font.Style:=[fsBold];
LY:=50;
LRowHeight:=Abs(Canvas.Font.Height);
LPPIX:=GetDeviceCaps(Handle,LOGPIXELSX);
{Resolution of printer, pixels per inch}
{Column headings}
Canvas.TextOut(Trunc(c_Col1*LPPIX),LY,'Amount');
Canvas.TextOut(Trunc(c_Col2*LPPIX),LY,'Tax');
Canvas.TextOut(Trunc(c_Col3*LPPIX),LY,'Amount + Tax');
Inc(LY,LRowHeight*2);
Canvas.Font.Style:=[];
{Data}
for i:=0 to ListBox1.Items.Count-1 do
begin
Canvas.TextOut(Trunc(c_Col1*LPPIX),
LY,AmountList.Items[i]);
Canvas.TextOut(Trunc(c_Col2*LPPIX),
LY,TaxList.Items[i]);
Canvas.TextOut(Trunc(c_Col3*LPPIX),
LY,AmountTaxList.Items[i]);
Inc(LY,LRowHeight);
end;
EndDoc;
except
{Printer.}Abort;
Raise;
end;
end;
end;