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

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?

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

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

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:

eh eu tentei usa a busca mas num funciona

[quote=luzeras] Procom 5900
gostaria de saber como posso fazer pra mandar uma string para esta impressora?[/quote]

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).

entao
eh web mas ira funcionar localmente.

aimpressora eh porta serial

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

[quote=fabiozoroastro]É só mandar imprimir ué. :slight_smile:
Se for web: print();
Se for no Word: ctrl + p.
E por ai vai. :slight_smile:
[/quote]
LOL
Ele não está falando disso.

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

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?!

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

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()); 
    } 
       
  }



  
} 
    

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.

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?!