Olá pessoal,
Tenho uma classe com dados e posições que eu quero imprimir, ou seja como faço pra acessar minha impressora e mandar imprimir os dado que tem na minha classe nas suas respectivas posições?
Olá pessoal,
Tenho uma classe com dados e posições que eu quero imprimir, ou seja como faço pra acessar minha impressora e mandar imprimir os dado que tem na minha classe nas suas respectivas posições?
Se vc estiver no Windows e a sua impressora for a padrão em LPT1 basta vc pegar os dados em variáveis, montar um arquivo texto e enviar direto dando um comando print.
Segue um exemplo. Agora se for via porta serial me avise que também já fiz e posso te ajudar nisso.
package br.com.bwilson.imprimir;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import javax.swing.JOptionPane;
/**
*
* @author petter
*/
public class ImprimirArgox {
public String Lote = "0123456789";
private String Stx = "\u0002";
private String Cr = "\r";
public void imprimir(String FornecedorCod, String FornecedorDesc,
String MaterialCod, String MaterialDesc, String DataVencimento,
String CodigoBarras) throws IOException, InterruptedException {
Process child;
String comandos;
int i = 0;
boolean bStatus = false;
try{
//Cria arquivo com conteudo a ser impresso e da ordem de impressão.
File file = new File ("etiqueta.txt");
FileWriter writer = new FileWriter(new File("etiqueta.txt"));
PrintWriter saida = new PrintWriter(writer, true);
saida.println(Stx + "m" + Cr); //Fixa unidade em milimetros
saida.println(Stx + "0603" + Cr); //Comprimento da etiqueta
saida.println(Stx + "L" + Cr); //Habilita o modo etiqueta
saida.println("H12"); //Fixa temperatura para 12
saida.println("D11" + Cr); //Tamanho padrão para pixel
saida.println("191100305000005" + "Fornecedor: " +FornecedorCod + " - " + FornecedorDesc + Cr); //Texto formatado
saida.println("191100204100005" + "Material: " + MaterialCod + " - " + MaterialDesc + Cr); //Texto formatado
saida.println("191100203200005" + "Data de Vencimento: " + DataVencimento + Cr); //Texto formatado
saida.println("191100202300005" + "Lote: " + Lote + Cr); //Texto formatado
saida.println("1E0000000800005B" + CodigoBarras + Cr); //Código de barras padrão Code 128
saida.println("E" + Cr); //Fim do modo de formatação e ordem de impressão
saida.close();
writer.close();
if (bStatus == false){
comandos = "print etiqueta.txt";
child = Runtime.getRuntime().exec(comandos);
Thread.sleep(500);
bStatus = true;
}
if (bStatus == true){
Thread.sleep(500);
file.delete();
Thread.sleep(500);
bStatus = false;
}
}catch(IOException ioe){
JOptionPane.showMessageDialog(null,
"Não foi possível enviar requisição para a impressora." + "/n" +
"Código: " + ioe.toString(),
"Aviso!",
JOptionPane.ERROR_MESSAGE);
}catch(InterruptedException ie){
JOptionPane.showMessageDialog(null,
"Erro na Thread MAIN. Contate a área de TI." + "/n" +
"Código: " + ie.toString(),
"Aviso!",
JOptionPane.ERROR_MESSAGE);
}
}
}