class ImpressaoTaxas extends Thread {
String[] linhasTaxa;
/**
* @param linhasTaxa vetor de Strings contendo todas as linhas da taxa
* que será impressa.
*/
public ImpressaoTaxas(String[] linhasTaxa) {
this.linhasTaxa = linhasTaxa;
}
/**
* Imprime todas as linhas da nota através da classe Runtime. O thread
* executa um comando sleep entre cada execução do Runtime para garantir
* que as linhas não sejam impressas fora de ordem.
*/
@Override
public void run() {
try {
Runtime r = Runtime.getRuntime();
for(int indice = 0; indice < linhasTaxa.length; indice++) {
try {
String[] comandos;
if(!linhasTaxa[indice].equals(" ")) {
comandos = new String[]{"cmd", "/c", "echo " + linhasTaxa[indice] + ">", "COM4"};
} else {
comandos = new String[]{"cmd", "/c", "echo. >", "COM4"};
}
r.exec(comandos);
sleep(0);
} catch(Exception e) {}
}
String[] pularLinha = new String[]{"cmd", "/c", "echo. >", "COM4"};
r.exec(pularLinha);
sleep(0);
r.exec(pularLinha);
sleep(0);
r.exec(pularLinha);
sleep(0);
r.exec(pularLinha);
sleep(0);
r.exec(pularLinha);
sleep(0);
r.exec(pularLinha);
sleep(0);
r.exec(pularLinha);
sleep(0);
r.exec(pularLinha);
sleep(0);
r.exec(pularLinha);
sleep(0);
r.exec(pularLinha);
System.out.println("Impressão finalizada!");
emAndamento = false;
jButtonImprimir.setEnabled(true);
} catch(Exception e) {
e.printStackTrace();
}
}