Cómo usar sendToPrinter con el protocolo SharedPrinter

Problema

El componente sendToPrinter soporta los siguientes protocolos:

  • CUPS
  • DirectIP
  • LPD
  • SharedPrinter
  • CIFS

En el caso de SharedPrinter, no se utiliza la URI del servidor y sólo se utiliza el Printer Name. Sin embargo, el valor Printer Name puede ser difícil de encontrar, ya que puede diferir de la UNC. 

Solución

El siguiente código puede utilizarse en una operación executeScript para listar las impresoras compartidas disponibles en el servidor:

import javax.print.*;

PrintServiceLookup.lookupPrintServices(null, null);

Inicie-----");

for(PrintService svc:svcs){

if(svc!=null){

"+svc.getName());

}

}

System.out.println("PrintServices Log

Fin-----");

 

Esto da como resultado la siguiente salida en el archivo de registro de su servidor:

[06/05/16

13:17:15:746 BST] 0000026d SystemOut O PrintServices Log Start-----

[06/05/16
13:17:15:762 BST] 0000026d SystemOut O PrintSvc : ZDesigner S4M-300dpi ZPL

[06/05/16
13:17:15:762 BST] 0000026d SystemOut O PrintSvc : server

[06/05/16
13:17:15:762 BST] 0000026d SystemOut O PrintSvc : Send To OneNote 2013

[06/05/16
13:17:15:762 BST] 0000026d SystemOut O PrintSvc : Microsoft XPS Document Writer

[06/05/16
13:17:15:763 BST] 0000026d SystemOut O PrintSvc : LPT1

[06/05/16
13:17:15:763 BST] 0000026d SystemOut O PrintSvc : Fax

[06/05/16
13:17:15:763 BST] 0000026d SystemOut O PrintSvc : Epson ESC/P-R

[06/05/16
13:17:15:763 BST] 0000026d SystemOut O PrintSvc : Adobe PDF

[06/05/16

13:17:15:763 BST] 0000026d SystemOut O PrintSvc : \\EDINBURGH-PRINT\Canon EDI-COE

[06/05/16

13:17:15:763 BST] 0000026d SystemOut O PrintServices Log End-----

Puede utilizar esta salida para configurar la operación sendToPrinter:

KB-Capture