Esta es una manera de hacerla. Puedes poner una condicion antes de mandar imprimir. Creas una archivo ini con estas caracteristicas
[IMPRESORAS]
ETIQUETAS=SP40
LISTADO_STOCKS=Lexmark Optra W810
A3=SuperLexmark
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
Código:
var
Indice: integer;
begin
.....
Indice := GetImpresora('A3');
if Indice <> -1 then
Report.PrinterSettings.PrinterIndex := Indice;
esto fue publicado por cadetill espero y te sirva.
Saludos Cachanilla