Segue classe para impressão direta em modo texto
Esta classe imprime direto para a porta de impressora LPT1 ou via Rede.
Nesta classe contem dois drives para controle de quebra de pagina, quebra de linha, compactação dos dos caracteres e etc.
Espero que este seja útil.
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
* Imprime direto para a porta ou compartilhamento de impressoara.
* data 14/10/2009
* @author Leandro Bernardo
* @version 0.5
* @since
*
*/
public class ImpressoraTexto {
private String Porta = "";
private FileOutputStream Impressora = null;
/**
* Cria a conexão com a impressora
* @return true para conexão ativa
* false para conexão falha
*/
private boolean open(){
try {
Impressora = new FileOutputStream(this.Porta);
return true;
} catch (FileNotFoundException ex) {
Logger.getLogger(ImpressoraTexto.class.getName()).log(Level.SEVERE, null, ex);
return false;
}
}
/**
* Cria o objeto com imformando a porta ou mapeamento da impressora
* @param Porta exemplo "LPT1" ou "\\maquina\nome_compartinhamento"
*
*/
public ImpressoraTexto(String Porta){
this.Porta = Porta;
this.open();
}
/**
*
* @return A porta onde está direcioando a impressora
*/
public String getPorta() {
return Porta;
}
public void setaddTexto(String Texto){
try {
byte[] bytes = Texto.getBytes();
Impressora.write(bytes);
} catch (IOException ex) {
Logger.getLogger(ImpressoraTexto.class.getName()).log(Level.SEVERE, null, ex);
}
}
/**
* Fecha a conexão com a impressora.
*/
public void close(){
try {
Impressora.close();
} catch (IOException ex) {
Logger.getLogger(ImpressoraTexto.class.getName()).log(Level.SEVERE, null, ex);
}
}
public static abstract class drivImp {
public String NL;
public String cReset;
public String cEject;
public String c10cpi;
public String c12cpi;
public String c17cpi;
public String cIExpandido;
public String cFExpandido;
public String cINegrito;
public String cFNegrito;
public String cIItalico;
public String cFItalico;
}
static class Epson extends drivImp{
public Epson() {
NL=""+(char)10+(char)13;
cReset=""+(char)0;
cEject=""+(char)12;
c10cpi=""+(char)18;
c12cpi=""+(char)27+(char)77;
c17cpi=""+(char)27+(char)15;
cIExpandido=""+(char)14;
cFExpandido=""+(char)20;
cINegrito=""+(char)27+(char)71;
cFNegrito=""+(char)27+(char)72;
cIItalico=""+(char)27+(char)52;
cFItalico=""+(char)27+(char)53;
}
}
static class HPDJ600 extends drivImp{
public HPDJ600() {
NL=""+(char)10+(char)13;
cReset=""+(char)27+(char)69;
cEject=""+(char)12;
c10cpi=""+(char)27+(char)40+(char)115+(char)49+(char)48+(char)72;
c12cpi=""+(char)27+(char)40+(char)115+(char)49+(char)50+(char)72;
c17cpi=""+(char)27+(char)40+(char)115+(char)49+(char)54+(char)46+(char)54+(char)55+(char)72;
cIExpandido=""+(char)27+(char)38+(char)100+(char)49+(char)68;
cFExpandido=""+(char)27+(char)38+(char)100+(char)64;
cINegrito=""+(char)27+(char)40+(char)115+(char)51+(char)66;
cFNegrito=""+(char)27+(char)40+(char)115+(char)48+(char)66;
cIItalico=""+(char)27+(char)40+(char)115+(char)49+(char)83;
cFItalico=""+(char)27+(char)40+(char)115+(char)48+(char)83;
}
}
public static void main(String args[]) {
ImpressoraTexto Imp = new ImpressoraTexto("LPT1");
drivImp ImpDrv = new Epson();
for (int i = 0; i < 20; i++) {
Imp.setaddTexto("..................Linha "+Integer.toString(i)+ImpDrv.NL);
}
Imp.setaddTexto(ImpDrv.cEject);
Imp.close();
}
}