Imprimir uma string numa impressora 'Generic Text' ( recibo )

13 respostas
L

boa tarde
estou desenvolvendo uma aplicacao que tem uma parte de pagamento
e nesta parte existe um link para imprimi a data a hora e o valor pago no recibo.
a impressora que eu tenho eh uma Procom 5900
gostaria de saber como posso fazer pra mandar uma string para esta impressora?

13 Respostas

F

É só mandar imprimir ué. :slight_smile:
Se for web: print();
Se for no Word: ctrl + p.
E por ai vai. :slight_smile:

L

mas eu quero mandar uma string pra imprimir… o texto nao vai ta prontinho , entendeu?

F

Vc pode então:

  • Criar um arquivo txt.
  • Abrir este arquivo e adicionar sua String
  • Invocar a impressão.

Acho que aqui no guj mesmo tem exemplos de como trabalhar com arquivos.
:slight_smile:

L

eh eu tentei usa a busca mas num funciona

O

luzeras:
Procom 5900
gostaria de saber como posso fazer pra mandar uma string para esta impressora?

Olá! Estou assumindo que você quer mandar direto para a impressora e que seu sistema é Desktop. Primeiro você tem que saber se a impressora é serial ou paralela e aí mandar a String direto para essa porta.

Porque se for web, só se você tiver a impressora como ponto de rede ou ligada ao servidor e fizer um servlet para imprimir direto na mesma (o que deve dar muito gargalo por conta da velocidade de impressão).

L

entao
eh web mas ira funcionar localmente.

aimpressora eh porta serial

M

Seguinte não tenho experiência com java mas vou te dar umas dicas igual :). Cria um applet (tem que assinar ele, isto tem tutorias aqui no guj que pode te ajudar), para poder jogar as informações na web para a máquina client que esta acessando o sistema, ou usa um ActiveX, mas este só funciona em IE mas é mais barbada de desenvolver.

Acho que é isto que você precisa…

falou

S

fabiozoroastro:
É só mandar imprimir ué. :slight_smile:
Se for web: print();
Se for no Word: ctrl + p.
E por ai vai. :slight_smile:

LOL
Ele não está falando disso.

Aplicações desktop em java para imprimir é dificil a beça. Comando print é javascript.

L

pessoal consegui monta uma classe que imprimi
fiz o teste usando a classe como java desktop e funciono

mas fiz ela pro meu projeto web e nao funcionou
ele abre o iconezinho da impressora embaixo no windows , fica uns 2seg e depois desaparece , e nao imprimi e nem da erro.
Alguem sabe o que posso fazer pra arrumar isso?!

L

Posta a classe que você fez, talvez seja pouca coisa para arrumar…
=]

L

ai vai a classe

package Ortodens;

import javax.print.*;
import java.io.*;
import javax.print.attribute.standard.Copies;
import javax.print.attribute.HashDocAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;
import javax.print.attribute.HashPrintRequestAttributeSet;
import Ortodens.forms.ParcelasFormulario;

public class ReciboImp {
    
    
    public ReciboImp(boolean mostrarDialogo,ParcelasFormulario pf) {

    
      System.out.println(mostrarDialogo); 
      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-texto"); 

      // 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 
      FileOutputStream fil = new FileOutputStream ("c.txt");

      
      PrintStream p = new  PrintStream (fil);
      p.print(pf.getDataPag()+ "***"+ pf.getValorRec());
      
      FileInputStream fi = new FileInputStream("c.txt"); 
      
      
      
      
      // 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(1)); 

        // Imprime o documento sem exibir uma tela de dialogo 
        printJob.print(documentoTexto, printerAttributes); 
      } 
    } 
    catch(IOException e){
        //System.out.println("ERRO IO"+e.getMessage());
    }  
    catch (PrintException ex2) { 
      //System.out.println("Erro de impressão: " + ex2.getMessage()); 
    } 
       
  }



  
}
M

Seguinte quer imprimir via sistema desktop ou web?

se for web da para fazer do jeito que falei, se for desktop envia os comandos para porta certa e era isto.

L

assim , o sistema eh em ‘formato’ de web , mas ele funcionará localmente…
esse codigo q eu mandei ele funciona as vzes e as vzes nao funciona .
Quando eu mando imprimir pagina teste dessa impressora vai normalmente , mas quando uso o programa java pra imprimir fica dando erro de impressao , ou so aparece e some o iconezinho.

ninguem sabe como posso resolver isso?!

Criado 15 de fevereiro de 2007
Ultima resposta 16 de fev. de 2007
Respostas 13
Participantes 6