Classe para impressão na Diebold (térmica) [RESOLVIDO]

4 respostas
P

Pessoal to com uma impressora diebold IM433TD, sou novato e não tenho nada a respeito deste tipo de impressora. será que alguem tem algum exemplo ou classe para me ajudar ? Passsos de configuração…

Obrigado desde já

4 Respostas

P

Pessoal consegi fazer imprimir com esse código… Agora estou com dois problemas:

1- como mando imprimir direto sem selecionar a impressora;

2 -gostaria de usar a largura total da bobina, qual atributo que modifica a largura?

import java.awt.Graphics;   
    import java.awt.PrintJob;   
    import java.awt.Toolkit;  
    import java.awt.Font;   
    import java.awt.Frame;    
      
    public class Impressora {      
         
       public void imprimir() {     
         
       // cria um frame temporário, onde será  desenhado  o texto a ser impresso     
       Frame f = new Frame("Frame temporário");     
       f.pack();      
       
       //f.setBounds(850, 890, 890, 990);
       //f.setMaximizedBounds(null);
       f.setMaximumSize(null);
         
       // pega o Toolkit do Frame     
       Toolkit tk = f.getToolkit();      
       
      
       // Pega os serviços de impressão existentes no computador,     
       // para que seja escolhida uma impressora.    
       // Também pode ser uma impressora de rede   
       PrintJob pj = tk.getPrintJob(f,  "recibo" , null);  
      
       // Aqui se inicia a impressão   
       if (pj != null) {    
          Graphics g = pj.getGraphics(); 
          g.setFont(new Font("Arial",Font.PLAIN,10));
          //g.draw3DRect(05, 180, 180, 180, false);
          //g.drawArc(05, 50, 60, 80, 90, 0); 
          //g.getClipBounds();
          //g.getFontMetrics();
          //g.setClip(01, 01 , 350, 350);
          //g.translate(150, 350);

          g.drawString( "Viagem No:" , 15, 98);  
          g.drawString( "Hr Entrada:" , 15, 109);
          g.drawString( "Hr Saida:" , 15, 120);
          g.drawString( "Motorista:" , 15, 140);  
          g.drawString( "Caminhao.:" , 15, 151);    
          g.drawString( "No.Frota.:" , 15, 162); 
          g.drawString( "Placa.:" , 15, 173); 
          g.drawString( "Proprietario:" , 15, 184);
          g.drawString( "Destino..:" , 15, 206);
          g.drawString( "Residuo..:" , 15, 217);
          
          g.drawLine(05,350,350,350);
          //g.setFont(new Font("Arial",Font.PLAIN,10));             
          //g.setFont(new Font("Courier New",Font.BOLD,8));  
   
          //g.drawString( "página 1" , 500, 810);    
      
          // libera os recursos gráficos    
          g.dispose();      
          // encerra a impressão    
          pj.end();   
       }    
      
       // desfaz o frame temporário   
       f.dispose();   
       }  
       // Método main para teste    
       public static void main(String[] args) {     
       Impressora imp = new Impressora();      
       imp.imprimir();   
       }   
    }
T

Me corriga se você estiver errado, você quer enviar diretamente para uma porta ja pré definida por exemplo LPT1 OU um caminho de impressora na rede ex \\User\Matricial

De uma olhada nesse método

protected void enviarImpressao(StringBuilder sb, String porta)
    {
        
        FileOutputStream outputFile = null;
        try {
            outputFile = new FileOutputStream(porta);
            PrintStream ps = new PrintStream(outputFile) ;
            ps.print(sb);
            ps.close();
            outputFile.close();
        }catch (FileNotFoundException ex) {
            Logger.getLogger(Matricial.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(Matricial.class.getName()).log(Level.SEVERE, null, ex);
        }  finally {
            try 
            {
                outputFile.close();
            } catch (IOException ex) {
                Logger.getLogger(Matricial.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
       
    }

Sendo a "porta" o caminho da impressora e o "sb" a string que voce vai inviar um exemplo

enviarImpressao("TESTE DE IMPRESSAO", "LPT1")
         //OU
       enviarImpressao("TESTE DE IMPRESSAO", "\\\\USER\\Matricial")//Caminho na rede
P

Tentei adaptar seu código, mas deu erro nesta linha

Logger.getLogger(Matricial.class.getName()).log(Level.SEVERE, null, ex);

Pelo eclipse, no meu código, eu executo, dai aparece a impressora que desejo utilizar, seleciono ela e dai imprime. Tem como mandar direto pra impressora padrão ou fazer td isso por uma servlet ou jsp?

P

Resolvi este problema com a utilização de uma applet.

Criado 1 de junho de 2012
Ultima resposta 6 de jun. de 2012
Respostas 4
Participantes 2