Usando Java, necesito imprimir en la impresora de red, que no está instalada localmente. Solo sé el nombre de la impresora. Todos los tutoriales que he visto comenzaron con algo como:¿Cómo usar Java para imprimir en una impresora de red?
PrintService []services = PrinterJob.lookupPrintServices();
El problema es que no puede haber ninguna impresora instalada, por lo que los servicios estarán vacíos en ese caso. Necesito establecer el nombre de la impresora directamente, no solo enumerar a través de impresoras visibles.
Las impresoras disponibles a través de 'lookupPrintServices()' listan las impresoras registradas en el O/S y registradas para el usuario que ejecuta la aplicación. Por ejemplo, si está en Windows, debe asegurarse de que la Impresora que desea esté registrada como el usuario del directorio activo en el que se ejecuta la aplicación (usuario local, servicio registrado, etc.). Este es un registro único. En una red, también puede registrar una impresora en la red y acceder a ella // server/printername – JoshDM
No necesito usar lookupPrintServices(). Tengo los nombres de las impresoras en el formato // server/printername. El problema es que lookupPrintServices no puede ver ninguno de ellos y no puedo registrarlo ni instalarlo. En .NET puede simplemente configurar el nombre de la impresora en la configuración de la impresora del objeto. Quiero saber si existe alguna posibilidad similar en Java también. Es sencillo. Tengo el archivo pdf (que maneja PDFBox) y el nombre de la impresora y quiero imprimirlo en silencio sin abrir Acrobat. Quiero saber la manera más simple. – user1431544
Incluso si está registrado en la red, si la impresora no está visible en el panel de control de Windows para el usuario del dominio que ejecuta la aplicación java, no será visible para Java a través de la API awt print. Puede tener el nombre y la ruta correcta, pero si no está registrado en el servidor en el que se está ejecutando la aplicación, no se encontrará. – JoshDM