En la paleta Dialogs de Delphi tienes PrintDialog y PrinterSetupDialog, añade el que quieras y despues:
Código Delphi
[-]
if printdialog1.execute then
begin
end
saludos
Si usas QuicReport para tu factura, usa el método PrinterSetup:
( qrFact es el quickReport en diseño)
Código Delphi
[-]
FrmQRFactura.qrFact.ReportTitle:= 'T.S.R.G. - Factura '+ DBEdit1.Text;
FrmQRFactura.qrFact.Tag:= 0;
FrmQRFactura.qrFact.PrinterSetup;
if FrmQRFactura.qrFact.Tag = 0 then
begin
FrmQRFactura.qrFact.Printbackground;
while FrmQRFactura.qrFact.QRPrinter.Status <> mpBusy do
begin
Application.HandleMessage;
Application.ProcessMessages;
end;
while FrmQRFactura.qrFact.Available = False do
begin
Application.HandleMessage;
Application.ProcessMessages;
end;
end;