Pessoal… Eu tenho um metodo que procura todas as impressoras da maquina e filtra elas passando um tipo de impressão.
public static List findPrinters( )
{
List printers = new ArrayList( );
PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet( );
DocFlavor flavor = DocFlavor.INPUT_STREAM.PCL;
PrintService[] printServices = PrintServiceLookup.lookupPrintServices(flavor, pras );
System.out.println("IMPRESSORAS: "+(printServices == null?"null":""+printServices.length));
if ( printServices != null )
{
for ( int i = 0; i < printServices.length; i++ )
{
PrintService service = printServices[i];
printers.add( createPrinter( service ) );
}
}
return printers;
}
Neste exemplo ele esta filtrando as impressoras PCL…
Eu tenho instalado na minha maquina uma lexmark e120 que segundo o fabricante é PCL
Mas infelizmente o java não diz a mesma coisa.
Se eu passar o doc flavor como AUTOSENSE:
DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
Ele traz a impressora.
Mas na hora de mandar imprimir:
1 - Utilizando AUTOSENSE não vai nada para impressora…
2 - Utilizando o flavor como PCL da um PrintException.
Alguem tem ideia pq essa lexmark não é reconhecida como PCL??
Ja fiz testes com todos os flavors disponíveis e nao vai.
Fiz testes em outras impressoras “Postscripts” funcionou tranquilo.