Yo utilizo el QuickReport y cuando quiero imprimir en otra impresora sólo tengo que cambiar el valor de
Printer.PrinterIndex := x o buscar la impresora por la cual quiero imprimir
Printer.Printers.IndexOf('Nombre de la Impresora'), sino te imprime cuando cambias éste valor, algo te falta por cambiar, el Fast Report no es tan distinto de QuickReport a la hora de coger los parámetros de
Printer y todo depende del valor que tenga el
Printer.PrinterIndex, es tan sencillo cómo cambiar éste valor.
Cambia:
Código Delphi
[-]AIndex := Printer.Printers.IndexOf('HP PSC 750'); <--- Buscar la impresora por la que voy a imprimir
if (AIndex = -1) then
begin
ShowMessage('No se encuentra la impresora, o la impresora a cambiado de nombre');
Exit;
end;
Rep_Estudio.PrintOptions.ShowDialog := False;
if AIndex <> 0 then
begin
Printer.PrinterIndex := AIndex;
Rep_Estudio.PrintOptions.Printer := Printer.Printers[AIndex];
Rep_Estudio.PrepareReport();
Rep_Estudio.Print;
end;
Por esto:
Código Delphi
[-]AIndex := Printer.Printers.IndexOf('HP PSC 750'); <--- Buscar la impresora por la que voy a imprimir
if (AIndex = -1) then
begin
ShowMessage('No se encuentra la impresora, o la impresora a cambiado de nombre');
Exit;
end;
Rep_Estudio.PrintOptions.ShowDialog := False;
Printer.PrinterIndex := AIndex;
Rep_Estudio.PrepareReport();
Rep_Estudio.Print;
Tienes un error en,
if AIndex <> 0 then ya que el valor puede ser 0 y le estas diciendo que si es distinto que 0 que imprima, el AIndex puede ser 0, tienes que poner que si es distinto que -1 para que funcione, pero eso ya te lo he puesto arriba.
Un saludo.