Foros Club Delphi

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

danytorres 14-01-2004 15:29:09

Impresora predeterminada?
 
Hola a todos los del foro. mi pregunta parese censilla pero no la se como coloco una impresora predeterminada la que yo quiera. Gracias de antemano. :)

danytorres 15-01-2004 18:13:18

Sera que es muy complicado colocar una impresora a traves de delphi 7 como predeterminada. :rolleyes:

__cadetill 15-01-2004 18:27:07

Lo que no entiendo a qué te refieres como predeterminada, ha que un determinado listado te salga por una determinada impresora sin que sea la predetermiada de Windows??

danytorres 15-01-2004 20:35:45

Gracias por responder cadetill, lo que deseo es colocar una impresora predeterminada estoy trabajando con rave 5 tengo el reporte de una factura y el reporte de una etiqueta ambas salen por impresoras diferentes como le indico al reporte por cual debe salir, yo pese cuando genere el reporte de factura coloco la impresora que es de factura como predeterminadad y cuando genere el reporte de etiqueta coloco como predeterminada la impresora de etiqueta, todo estos es para que el usuario no tenga que escoger la impresora cuando imprima un reporte. el detalle esta como coloco una impresora como predeterminadad. agradesco la ayuda. :)

__cadetill 15-01-2004 23:57:27

bueno, pues si no recuerdo mal (lo digo de memoria) se hace con el objeto Printer declarado en la unit Printer

Algo así más o menos

Código:

  Printer.PrinterIndex := 1;
Mirate este objeto que varás que también puedes acceder a las impresoras instaladas en el sistema con Printer.Printers (de tipo TStrings),.....

Espero te sirva

danytorres 18-01-2004 06:13:07

Cadetil, probe lo que me dices pero cuando saco el reporte me sigue sacando la impresora que originalmente estaba como predeterminada. :( que hago.

__cadetill 18-01-2004 14:27:52

Veamos

Nosotros tenemos varias impresoras y, según el listado, éste ha de salir por una o por la otra. ¿Cómo lo hacemos? Pues bien, tenemos un archivo INI más o menos con esta estructura:

Cita:

[IMPRESORAS]
ETIQUETAS=SP40
LISTADO_STOCKS=Lexmark Optra W810
A3=SuperLexmark
.....
Me imagino que lo entiendes, pero sino, lo que ponemos es un nombre de variable (etiquets, listado_stocks, a3,...) y el nombre de la impresora por el cual lo queremos imprimir (el que ves en la pantalla de impresoras instaladas en el sistema).
Luego, me creé la siguiente función con la que recupero la impresora deseada

Código:

...
const
  PrintersIni = 'c:\ImpJulia\Printers.ini';
.....

function TBaseListado.GetImpresora(Impresora: string) : integer;
var
  Ini : TIniFile;
  Imp : string;
  i : integer;
begin
  if FileExists(PrintersIni) then
  begin
    Ini := TIniFile.Create(PrintersIni);
    Imp := Ini.ReadString('IMPRESORAS', Impresora, '');
    Ini.Free;
  end;

  if Imp = '' then
    Result := -1
  else
  begin
    // buscamos la impresora en las instaladas y devolvemos su índice
    for i := 0 to Printer.Printers.Count - 1 do
      if Pos(Imp, Printer.Printers[i]) <> 0 then Break;
    Result := i;
  end;
end;

Y luego, desde algún lugar y, antes de hacer el Print o Preview del listado se hace la asignación al QuickReport

Código:

var
  Indice: integer;
begin
  .....
  Indice := GetImpresora('A3');
  if Indice <> -1 then
    Report.PrinterSettings.PrinterIndex := Indice;
  .....
  QuickReport1.Print; // o QuickReport1.Preview;

La función tiene un pequeño "bug" que no he tenido ni tiempo ni ganas de arreglar. Y es que si la impresora está definida pero no está configurada, petaría. Este pequeño detalle ya te lo dejo a ti (si lo quieres solucionar) :D

Bueno, espero que ahora sí puedas hacer lo que quieres ;)

danytorres 18-01-2004 18:10:23

Gracias por responder cadetil, el codigo funciona muy bien en Qreport pero en Rave 5 no cuando ejecuto un repote de rave la impresora que me sale es la que esta originalmente predeterminada por win?

__cadetill 18-01-2004 19:58:44

cierto, que era para Rave :o

Pues no he trabajado nunca con Rave. Mira a ver si hay alguna manera de indicarle el índice de una impresora (estilo QR). La verdad, no te sabría decir :(

danytorres 19-01-2004 00:25:35

Gracias de todas maneras cadetil. :)

El detalle esta que no quiero utilizar Qreport quiero seguir con Rave 5 agradesco a quien me pueda dar una mano :(


La franja horaria es GMT +2. Ahora son las 09:35:47.

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