Galera preciso de uma coisa bem simples, imprimir o conteudo de uma String direto para impressora
Imprimir Variavel String direto na impressora padrão
2 Respostas
C
package outrostests;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import javax.print.Doc;
import javax.print.DocFlavor;
import javax.print.DocPrintJob;
import javax.print.PrintException;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import javax.print.SimpleDoc;
/**
-
@author Usuario2
*/
public class Printers {private static PrintService impressora;
public Printers(){ detectaImpressoras(); imprime(“Oi sdfg sdfgsdfgsdfg\n rfgdfsg”); }
public static void main(String[] args) { new Printers(); }
public void detectaImpressoras() { try { DocFlavor df = DocFlavor.SERVICE_FORMATTED.PRINTABLE; PrintService[] ps = PrintServiceLookup.lookupPrintServices(df, null); for (PrintService p: ps) { System.out.println("Impressora encontrada: " + p.getName()); if (p.getName().contains(“Daruma”) && p.getName().contains(“Copia”)) { System.out.println("Impressora Selecionada: " + p.getName()); impressora = p; break; } } } catch (Exception e) { e.printStackTrace(); } }
public synchronized boolean imprime(String texto) { // se nao existir impressora, entao avisa usuario // senao imprime texto if (impressora == null) { String msg = “Nennhuma impressora foi encontrada. Instale uma impressora padrão \r\n(Generic Text Only) e reinicie o programa.”; System.out.println(msg); } else { try { System.out.println("Impressora: "+impressora); DocPrintJob dpj = impressora.createPrintJob(); InputStream stream = new ByteArrayInputStream(texto.getBytes()); DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE; Doc doc = new SimpleDoc(stream, flavor, null); dpj.print(doc, null); return true; } catch (PrintException e) { e.printStackTrace(); } } return false; }
}
Ok, agora vamos a explicação do código.
Primeiro, “configurar” a impressora.
if (p.getName().contains(“Daruma”) && p.getName().contains(“Copia”)) {
Nessa linha troque Daruma e Copia, por palavras chaves da sua impressora.
exemplo
p.getName().contains(“HP”) && p.getName().contains(“2000”)
se usar a classe, verá que esta variavel private static PrintService impressora;
será setada ao chamar o método detectaImpressoras();
agora é só imprimir qualquer string, passando por parametro imprime(“teste string”);
Sobre a impressora padrão, imagino que alterando no código não é bem o que você queria né? mas dá para adaptar, já fiz para pegar a impressora padrão, mas usando o ireport.
Consegui realizar a impressão já , porem preciso editar a fonte e o tamanho antes de imprimir como faço isso ?
Criado 25 de julho de 2017
Ultima resposta 26 de jul. de 2017
Respostas 2
Participantes 2
Alura O que é Python? — um guia completo para iniciar nessa linguagem de programação Acesse agora o guia sobre Python e inicie sua jornada nessa linguagem de programação: o que é e para que serve, sua sintaxe e como iniciar nela!
Casa do Codigo Engenharia de Prompt para Devs: Um guia para aprender a... Por Ricardo Pupo Larguesa — Casa do Codigo