Alguém tem algum código em outra linguagem (C++ ou outro) que receba um parâmetro ‘String texto’ e pega esse texto e imprime na impressora Generic Text Only? Também gostaria de saber como executar esse arquivo pelo Java depois.
Cara, desenvolvi esse método para meus softwares, nunca tive problema, usava impressão direto na porta da impressora (Windows e Linux) porém resolvi trabalhar da forma correta que é a impressão na impressora padrão do sistema operacional usando o spooler de impressão do mesmo.
/**
* Envia uma impressão em modo de texto para a impressao padrão instalada no sistema operional
* @param TextoImpressao
*/
public void imprimirTextoImpressoraPadrao(String textoSerImpresso) {
//Pegando a impressora padrao
PrintService ps = PrintServiceLookup.lookupDefaultPrintService();
try {
DocPrintJob dpj = ps.createPrintJob();
InputStream stream = new ByteArrayInputStream(textoSerImpresso.getBytes());
DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
Doc doc = new SimpleDoc(stream, flavor, null);
dpj.print(doc, null);
} catch (Exception e) {
}
}
Perceba que meu código é bem mais limpo e otimizado do que os encontrados em todo lugar, te garanto que está perfeito, não precisa de mais nada, apenas torne a impressão a qual você quer que ele imprima como padrão e pronto, funciona e testado em Windows Linux. Outra dica, use o driver padrão da impressora, nao use a Genérica Somente Texto, se for uma LX-300 ou outras dessa linhas de matricial use o driver que vem no sistema operacional é bem mais garantido que não aconteca problemas. Fica ai a dica pra todos que tiverem problemas.
[quote=ambuzr]Cara, desenvolvi esse método para meus softwares, nunca tive problema, usava impressão direto na porta da impressora (Windows Linux) porém resolvi trabalhar da forma correta que é a impressão na impressora padrão do sistema operacional usando o spooler de impressão do mesmo.
/**
* Envia uma impressão em modo de texto para a impressao padrão instalada no sistema operional
* @param TextoImpressao
*/
public void imprimirTextoImpressoraPadrao(String textoSerImpresso) {
//Pegando a impressora padrao
PrintService ps = PrintServiceLookup.lookupDefaultPrintService();
try {
DocPrintJob dpj = ps.createPrintJob();
InputStream stream = new ByteArrayInputStream(textoSerImpresso.getBytes());
DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
Doc doc = new SimpleDoc(stream, flavor, null);
dpj.print(doc, null);
} catch (Exception e) {
}
}
Perceba que meu código é bem mais limpo e otimizado do que os encontrados em todo lugar, te garanto que está perfeito, não precisa de mais nada, apenas torne a impressão a qual você quer que ele imprima como padrão e pronto. Outra dica, use o driver padrão da impressora, nao use a Genérica Somente Texto, se for uma LX-300 ou outras dessa linhas de matricial use o driver que vem no sistema operacional é bem mais garantido que não aconteca problemas. Fica ai a dica pra todos que tiverem problemas.[/quote]