Aplicação em servidor remoto imprimindo local

Tenho uma aplicação web que imprime etiquetas usando uma impressora “zebra”, que utiliza uma linguagem própria.
Não é gerado um arquivo para depois imprimi-lo, os dados são impressos diretamente pra impressora.

Isso funciona normalmente na maquina local. A impressora está conectada na minha máquina.

Mas não funciona com a aplicação instalada num servidor em outra maquina, pq o servidor não encontra a impressora que está na minha máquina.

Tem como o servidor encontrar a impressora que esta na minha máquina local?

Segue abaixo o código que eu utilizo:

PrintService psZebra = null;
           String sPrinterName = null;
           PrintService[] services = PrintServiceLookup.lookupPrintServices(null, null);
 
           for (int i = 0; i < services.length; i++) {
 
               PrintServiceAttribute attr = services[i].getAttribute(PrinterName.class);
               sPrinterName = ((PrinterName) attr).getValue();
 
               if (sPrinterName.toLowerCase().indexOf("zebra") >= 0) {
                   psZebra = services[i];
                   break;
               }
           }
 
           if (psZebra == null) {
               System.out.println("Zebra printer is not found.");
               return;
           }
           DocPrintJob job = psZebra.createPrintJob();
 
           String s = "^XA^FO100,40^BY3^B3,,30^FD123ABC^XZ";
 
           byte[] by = s.getBytes();
           DocFlavor flavor = DocFlavor.BYTE_ARRAY.AUTOSENSE;
           Doc doc = new SimpleDoc(by, flavor, null);
           job.print(doc, null);

Valeu

cara,

eu uso esse código:

Desktop.getDesktop().print(new File("diretorio/arquivo/etc"));

ele imprime na impressora padrão;
NUNCA tentei imprimir etiqueta com esse código;
se não me engano funciona só na versão 6 do java.

Boa sorte! ^^’

[quote=pedruhenrik]cara,

eu uso esse código:

Desktop.getDesktop().print(new File("diretorio/arquivo/etc"));

ele imprime na impressora padrão;
NUNCA tentei imprimir etiqueta com esse código;
se não me engano funciona só na versão 6 do java.

Boa sorte! ^^’[/quote]

Não funcionou.

Essa classe não consegue imprimir na minha impressora.

		try { // Localiza todas as impressoras com suporte a arquivos txt
			PrintService[] servicosImpressao = PrintServiceLookup.lookupPrintServices(DocFlavor.INPUT_STREAM.AUTOSENSE, null);

			System.out.println("Impressoras com suporte: "
					+ servicosImpressao.length);

			// Localiza a impressora padrão
			PrintService impressora = PrintServiceLookup
					.lookupDefaultPrintService();

			System.out.println("Impressora: " + impressora.getName());

			System.out.println("Imprimindo arquivo");

			// Definição de atributos do conteúdo a ser impresso:
			DocFlavor docFlavor = DocFlavor.INPUT_STREAM.AUTOSENSE;

			// Atributos de impressão do documento
			HashDocAttributeSet attributes = new HashDocAttributeSet();

			// InputStream apontando para o conteúdo a ser impresso
			FileInputStream fi = new FileInputStream(in);

			// Cria um Doc para impressão a partir do arquivo exemplo.txt
			Doc documentoTexto = new SimpleDoc(fi, docFlavor, attributes);

			// Configura o conjunto de parametros para a impressora
			PrintRequestAttributeSet printerAttributes = new HashPrintRequestAttributeSet();

			System.out.println(mostrarDialogo);

			// mostrarDialogo = false;

			if (mostrarDialogo) { // exibe um dialogo de configuracoes de
									// impressao
				PrintService servico = ServiceUI.printDialog(null, 320, 240,
						servicosImpressao, impressora, docFlavor,
						printerAttributes);

				if (servico != null) {
					DocPrintJob printJob = servico.createPrintJob();
					printJob.print(documentoTexto, printerAttributes);
				}
			} else {
				// Cria uma tarefa de impressão
				DocPrintJob printJob = impressora.createPrintJob();

				// Adiciona propriedade de impressão: imprimir duas cópias
				printerAttributes.add(new Copies(copInt));

				// Imprime o documento sem exibir uma tela de dialogo
				printJob.print(documentoTexto, printerAttributes);
			}
		}

…funciona???