Yo utilizo este código que puedes ver y nunca me ha fallado:
Código Delphi
[-] procedure TfrFichas.SpPrintClick(Sender: TObject);
begin
DmXXX.Fich.DisableControls;
try
Application.CreateForm(TfrLstFichas, frLstFichas);
frlstfichas.ListaFichas.Prepare;
nPages:=frlstfichas.Listafichas.qrprinter.PageCount;
Application.CreateForm(TfrDlgPaginas, frDlgPaginas);
frDlgPaginas.ShowModal;
frlstfichas.ListaFichas.printersettings.firstpage:=frDlgPaginas.SpFirst.value;
frlstfichas.ListaFichas.printersettings. lastpage:=frDlgPaginas.SpLast.Value;
frlstfichas.listafichas.Print;
finally
DmXXX.Fich.EnableControls;
end;
frLstFichas.Close;
end;
Un Saludo.