PDA

Ver la Versión Completa : Imprimir con una impresora que no es la predeterminada


principiante22
04-10-2008, 10:38:53
Saludos a todos, tengo un problema con una impresora y no he logrado encontrar lo que deseo. Como puedo hacer que (Sin mostrar ningun dialogo al usuario) el programa me imprima en otra impresora diferente a la que esta por predeterminada.

Uso RvProject, RvSystem y RvRendePrinter de esta manera para imprimir con la predeterminada:

RvSystem1.RenderObject := RvRenderPrinter1;
RvSystem1.DoNativeOutput := False;
RvSystem1.SystemSetups := RvSystem1.SystemSetups - [ssAllowSetup];
RvProject1.Open;
RvProject1.Execute;

Estando el RvProject1 conectado con el RvSystem1 y el RvSystem1 teniendo la opcion DefaultDest: rdPrinter.

Gracias por cualquier respuesta que pueda proveerme.

Softweb
04-10-2008, 15:45:19
Hola:

Con Rave no se pues no lo e usado nunca pero QReport yo lo utilizo de esta forma

procedure TDlgEdiFacturas.imprimir(Sender: TObject);
var
oldPrinter : TPrinter;
begin
if TablaF.State in [ dsInsert, dsEdit ] then TablaF.Post;
Screen.Cursor := crHourglass;
repFacturaDes := TrepFacturaDes.Create( Self );
try
// Guardamos la impresora actual
oldprinter := SetPrinter( TPrinter(repFacturaDes.Printer) );
repFacturaDes.Prepare;
// Comprobamos que la impresora configurada exise
if repFacturaDes.Printer.Printers.IndexOf( V_PRINT_CONFIGURADA ) = -1 then
begin
ShowMessage( V_PRINT_CONFIGURADA );
MessageDlg( 'No encuentro la impresora estandar configurada', mtError, [mbOk], 0 );
SetPrinter( oldPrinter );
exit;
end;
// Se la a asigno al reporte
repFacturaDes.PrinterSettings.PrinterIndex := repFacturaDes.Printer.Printers.IndexOf( V_PRINT_CONFIGURADA );

repFacturaDes.Print;

finally
repFacturaDes.Free;
// Reponemos la impresora por defecto
SetPrinter( oldPrinter );
end;

end;

Espero que te sirva.

Saludos

principiante22
09-10-2008, 06:34:43
Gracias Softweb por tu respuesta, pero desearia saber si alguien conoce la forma de hacerlo con rave, ya que no quiero tener que hacer los reportes nuevamente. Gracias de nuevo.

lacovera
20-11-2008, 11:37:25
muy facil!
.SelectPrinter('impresora',False);