Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Impresión en red (https://www.clubdelphi.com/foros/showthread.php?t=50663)

monicasierrar 24-11-2007 15:37:51

Impresión en red
 
Hola a todos.

Realicé una aplicación con delphi6, Ib 6.0 y utilizo como reporteador a RBuilder. El problema que tengo es que solo me está imprimiendo en la primera impresora que instalé, una samsung ML-2060 y desde un solo equipo, el primero que instale la aplicación. Cuando ejecuto la aplicación en otro equipo y quiero mandar a otra impresora que está en red, una ML-1060, ni a ninguna otra, no imprime nada. Pero si imprime desde word, página de pruebas, etc.

Alguna idea?

salvica 25-11-2007 00:42:53

Hola
Cita:

Empezado por monicasierrar (Mensaje 248189)
Hola a todos.

Realicé una aplicación con delphi6, Ib 6.0 y utilizo como reporteador a RBuilder. El problema que tengo es que solo me está imprimiendo en la primera impresora que instalé, una samsung ML-2060 y desde un solo equipo, el primero que instale la aplicación. Cuando ejecuto la aplicación en otro equipo y quiero mandar a otra impresora que está en red, una ML-1060, ni a ninguna otra, no imprime nada. Pero si imprime desde word, página de pruebas, etc.

Alguna idea?

Tendrás que decirle al generador cual es la impresora que deseas utilizar.

Aquí tienes un ejemplo de asignación de impresoras http://www.clubdelphi.com/foros/showthread.php?t=50498, para ello deberás hacer un bucle hasta encontrar la impresora "por defecto" del ordenador en cuestión o la que deseas. En el foro he visto varios ejemplos de como hacerlo.

Saludos
salvica

Edito: No me fijé que unos posts más abajo hay un ejemplo de como buscar impresoras, exactamente aquí http://www.clubdelphi.com/foros/showthread.php?t=50659

monicasierrar 27-11-2007 19:15:01

Sin solución
 
Hola. Muchas gracias por colaborarme.

Resulta que hice lo que tu me sugeriste, cargue en un combo box el listado de las impresoras, seleccióno en la que voy a imprimir, con RBuilder, asigno el nombre de la impresora

procedure TrptBalanceGral2007.ReporteBeforePrint(Sender: TObject);
begin
Reporte.PrinterSetup.PrinterName := NombreImpresora;
end;

Y nada, la primera vez trata de coger el papel, pero después ni se mueve la impresora.

Alguna otra idea,

Nuevamente gracias.

Mónica:

salvica 28-11-2007 11:19:46

Cita:

Empezado por monicasierrar (Mensaje 248755)
Hola. Muchas gracias por colaborarme.
Resulta que hice lo que tu me sugeriste, cargue en un combo box el listado de las impresoras, seleccióno en la que voy a imprimir, con RBuilder, asigno el nombre de la impresora
Código Delphi [-]
procedure TrptBalanceGral2007.ReporteBeforePrint(Sender: TObject);
begin
  Reporte.PrinterSetup.PrinterName := NombreImpresora;
end;
Y nada, la primera vez trata de coger el papel, pero después ni se mueve la impresora.

Alguna otra idea,

Nuevamente gracias.

Mónica:

No lo estás haciendo bien, más o menos seria así:
Código Delphi [-]
Uses 
.... 
....   
Printers;  

function  AsignarImpresora:integer;
var
  ComboBox : TComboBox;
  NumItem  : integer;
Begin
{ creamos el combox para las impresoras existentes }
  ComboBox := TComboBox.Create( nil );
  with ComboBox do
       try
         Visible := false; //---------------------------> ocultamos el combobox
         Parent  := rptBalanceGral2007; //--------------> asignamos a "quién pertenece"
         Clear; //--------------------------------------> inicializamos por si existe algo (no es necesario)
         AddStrings(Printer.Printers); //---------------> cargamos las impresoras del sistema
         NumItem  := Items.IndexOf('PDF Creator'); //---> buscamos la impresora a utilizar
        { Asignamos el indice de  la impresora }
          with rptBalanceGral2007 do
               Reporte.PrinterSettings.PrinterIndex := NumItem
       finally
         Free; //---------------------------------------> eliminamos el combobox
       end;
  Result := NumItem;
End;

procedure TrptBalanceGral2007.ReporteBeforePrint(Sender: TObject);
begin
  if( AsignarImpresora=-1 ) //-------------------------> comprobamos si asignamos la impresora
      then ShowMessage( 'Impresora no encontrada' );
end;
Esto lo he hecho de memoria, pero como ejemplo vale
Saludos
salvica

Lepe 28-11-2007 12:47:00

¿no se puede resumir en esto otro?

Código Delphi [-]
NumItem  := Printer.Printers.IndexOf('PDF Creator'); 
if NumItem = -1 then
  ShowMessage('error no encontrada la impresora 'PDF Creator')

Printers es de tipo TString y ya tiene el "IndexOf"


Saludos

salvica 28-11-2007 13:45:08

Cita:

Empezado por Lepe (Mensaje 248961)
¿no se puede resumir en esto otro?

Código Delphi [-]NumItem := Printer.Printers.IndexOf('PDF Creator');
if NumItem = -1 then ShowMessage('error no encontrada la impresora 'PDF Creator')


Printers es de tipo TString y ya tiene el "IndexOf"


Saludos

Hola Lepe, es mejor y más corto :rolleyes: pero así daba a entender la diferencia entre lo que hace monicasierrar y el porqué de la búsqueda de la impresora (que no lo tiene muy claro)

Saludos
salvica


La franja horaria es GMT +2. Ahora son las 01:36:19.

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