Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Imprimir con una impresora que no es la predeterminada (https://www.clubdelphi.com/foros/showthread.php?t=60516)

principiante22 04-10-2008 10:38:53

Imprimir con una impresora que no es la predeterminada
 
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:

Código Delphi [-]
  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

Código Delphi [-]
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);


La franja horaria es GMT +2. Ahora son las 06:41:46.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi