Eu utilizo a classe abaixo para listar as impressoras que tenho no computador, escolher uma delas (no caso a Generic Text Only porque é uma impressora fiscal Bematech) e imprimir o que eu quiser.
packagebr.com.ipuc.Impressao;importjavax.print.*;importjava.io.ByteArrayInputStream;importjava.io.InputStream;// Essa classe é a responsavel pela impressao. Ela detecta a impressora// instalada, recebe o texto e o imprime.publicclassImpressao{// variavel estatica porque será utilizada por inumeras threadsprivatestaticPrintServiceimpressora;publicImpressao(){detectaImpressoras();}// O metodo verifica se existe impressora conectada e a// define como padrao.publicvoiddetectaImpressoras(){try{DocFlavordf=DocFlavor.SERVICE_FORMATTED.PRINTABLE;PrintService[]ps=PrintServiceLookup.lookupPrintServices(df,null);for(PrintServicep:ps){System.out.println("Impressora encontrada: "+p.getName());if(p.getName().contains("Text")||p.getName().contains("Generic")){System.out.println("Impressora Selecionada: "+p.getName());impressora=p;break;}}}catch(Exceptione){e.printStackTrace();}}publicsynchronizedbooleanimprime(Stringtexto){// se nao existir impressora, entao avisa usuario// senao imprime textoif(impressora==null){Stringmsg="Nennhuma impressora foi encontrada. Instale uma impressora padrão \r\n(Generic Text Only) e reinicie o programa.";System.out.println(msg);}else{try{DocPrintJobdpj=impressora.createPrintJob();InputStreamstream=newByteArrayInputStream(texto.getBytes());DocFlavorflavor=DocFlavor.INPUT_STREAM.AUTOSENSE;Docdoc=newSimpleDoc(stream,flavor,null);dpj.print(doc,null);returntrue;}catch(PrintExceptione){e.printStackTrace();}}returnfalse;}}
Qualquer coisa meu MSN é [email removido]
tiagops
Pessoal, voces ja conseguiram imprimir documentos em impressoras matriciais? O que usaram?
Vou precisar imprimir notas fiscais apartir de uma aplicacao java web.
Minha duvida é se tem como dar comando de quebra de pagina, etc…
Valeu!
R
rafaelsouzaf
tiagops:
Pessoal, voces ja conseguiram imprimir documentos em impressoras matriciais? O que usaram?
Vou precisar imprimir notas fiscais apartir de uma aplicacao java web.
Minha duvida é se tem como dar comando de quebra de pagina, etc…
Valeu!
Eu só testei com impressora fiscal. Acho que o manual de intruçao da impressora deve dizer o caracter de quebra de linha. No meu caso a impressora fiscal aceita o \r\n como quebra.
motta_tb
eu uso “\u000B” pra quebrar a linha.
mas to com um problema q é o seguinte:
tenho um sistema web pra emitir nota fiscal em matricial
só consigo imprimir na impressora q o sistema ta rodando…
ou seja, no servidor
quero acessar de algum micro da rede ou pela net e imprimir na impressora padrao q tem no micro.
alguem tem alguma ideia?
stefan
Ola, eu fiz um applet que le um arquivo XML aonde eu recebo todos os parametros de LinhaxColuna, fontes, negrito, italico e tudo mais…
Ele imprime em qualquer impressora que a maquina do usuario tenha acesso.
Ela trabalha em sextos e oitavos, bom, todo o suporte da matricial. Nao tive problemas de quebras de linhas, pq mando o texto na linha X e na coluna Y direto.
Abraços
H
Hamses
Ola Pessoal.
Esse tema de imprimir em impressora matricial em java é complicado de achar na net eu já estou alguns meses procurando e não acho algo concreto.
Bom no meu caso eu consegui imprimir pelo iReport mas a qualidade não sai muito boa pois eu acho que ele imprime em modo grafico.
Alguem tem uma ideia que possa me ajudar a imprimir em matricial ou algum tutorial que explique,pois só falta isso para eu terminar um projeto.
Quem puder me ajudar muito Obrigado.
Valeu.
magnus
Como extender para poder especificar a linha e a coluna q se deseja imprimir?
Emerson_Bolsoni
Aê galera, to usando esse codigo postado pelo “rafaelsouzaf” porém tem um problema que ta acontecendo com minha impressora, ela esta mandando a impressão como manual e não pra bandeja automatica…
Ja configurei nas propriedades da impressora para que seja sempre enviado a bandeja e não está acontecendo isso…
Vocês sabem como faço pra setar isso no código???
Lich_King
vou tentar dar um chute aqui…me digam se está certo… :?
:arrow: eu crio um arquivo texto com modelo da nota para cada tipo d NF…
ele seria algo assim?
:arrow: a classe controladora de NF vai usar algum método de uma classe especifica para a matricial q está sendo usada (Epson, Citizen,…) e vai ler esse arquivo texto fazendo as substituições necessárias e jogar isso num String buffer…
:arrow: Depois a controladoraNF vai pegar cada linha desse StringBuffer mandar pra porta da matricial (q vai ser uma porta paralela, certo?)…
:arrow: Se imprimir no lugar errado da nota devo acertar meu modelo de NF até acertar isso…
seria mais ou menos isso?? :? :? :?: :?: há algo mais com q devo me preocupar??
V
vitormm
stefan:
Nao tive problemas de quebras de linhas, pq mando o texto na linha X e na coluna Y direto.
Estou querendo fazer isso na aplicação web que trabalho, para imprimir notas fiscais.
Como você faz isso?
abraços
V
vitormm
Eu comecei utilizando a Printig API.
Consegui imprimir linhas no ponto que eu quero, mas só consigo imprimir a partir do ponto imageableX / Y, não consigo imprimir da posição 00. Já setei a imageableArea, mas não funcionou.
Alguem sabe como resolver??
abraços
V
vitormm
Talvez eu não tenha explicado direito, consigo imprimir onde eu quero na página.
Só qeu não consigo fazer a área útil de impressão começar do início da página.
Alguem sabe como posso fazer para começar a imprimir desde o início da página, retirando as margens?
Se alguem souber eu agradeço.
Abraços
V
vitormm
Resolvi meu problema. Para colocar a margem lá em cima, na borda da página eu utilizei graphics.setClip(…) e depois paper.setImageableArea(…), e pronto.
abraços
douglasrusso
Utilizo para quebra de linha: \r\n
A
arkaatz
vitormm:
Resolvi meu problema. Para colocar a margem lá em cima, na borda da página eu utilizei graphics.setClip(…) e depois paper.setImageableArea(…), e pronto.
abraços
Vitor, vc poderia postar as linhas do seu graphics.setClip, paper.setImageableArea para facilitar o entendimento ?
Obrigado,
bezerra.renato
Olá a todos.
Estou interessado nesse recurso, mas não sei utiliza-lo.
Alguém teria um exemplo sobre este recurso?
Desde já agradeço.
nilsoncastro
Estou precisando saber como se faz para imprimir os dados de um formulário (que já está impresso) na posição certa de cada elemento
Alguem pode me ajudar?
nilsoncastro
stefan:
Ola, eu fiz um applet que le um arquivo XML aonde eu recebo todos os parametros de LinhaxColuna, fontes, negrito, italico e tudo mais…
Ele imprime em qualquer impressora que a maquina do usuario tenha acesso.
Ela trabalha em sextos e oitavos, bom, todo o suporte da matricial. Nao tive problemas de quebras de linhas, pq mando o texto na linha X e na coluna Y direto.
Abraços
Acho que preciso exatamente de uma função como essa, que imprima o texto posicionado nas coordenadas X e Y
P
patricia
Bom dia pessoal.
Eu estou tendo um problema com a minha impressão.
Gerei um arquivo.txt e quero imprimí-lo.
Pra enviar pra impressora tudo bem, porém, eu não estou conseguindo que seja impresso todo o conteúdo do arquivo, pois há linhas muito longas e na impressão não é quebrada a linha, fica faltando metade da linha a ser impressa.
Como eu faço pra que todo o meu arquivo seja impresso?
Segue meu codigo.
Mas to com um problema aqui… alguem sabe como fazem impressao pela rede??? Tipo, “LPT1” eh local neh… e pela rede???
Por acaso se for configurado uma impressora de rede no windows e eu mandar pra porta LPT1 normal como acima funfa???
ajuda ae…
jopss
eduardoluiz.ribeiro
Olá galera, estou refazendo o código postado aí a acíma, e apareceram alguns problemas aqui, bom, eu ja debuguei o código e ví que a primeira parte (selecionar a impressora) está funcionando certinho, porém para ele funcionar eu substitui
que é o drive da impressora que eu quero testar
só que agora não está indo para o método imprime… ou seja ele seleciona a impressora mas n manda imprimir…? alguem sabe como resolver? ou eu n posso substituir o Generic ou o Text
augustocolom
rafaelsouzaf:
Eu utilizo a classe abaixo para listar as impressoras que tenho no computador, escolher uma delas (no caso a Generic Text Only porque é uma impressora fiscal Bematech) e imprimir o que eu quiser.
packagebr.com.ipuc.Impressao;importjavax.print.*;importjava.io.ByteArrayInputStream;importjava.io.InputStream;// Essa classe é a responsavel pela impressao. Ela detecta a impressora// instalada, recebe o texto e o imprime.publicclassImpressao{// variavel estatica porque será utilizada por inumeras threadsprivatestaticPrintServiceimpressora;publicImpressao(){detectaImpressoras();}// O metodo verifica se existe impressora conectada e a// define como padrao.publicvoiddetectaImpressoras(){try{DocFlavordf=DocFlavor.SERVICE_FORMATTED.PRINTABLE;PrintService[]ps=PrintServiceLookup.lookupPrintServices(df,null);for(PrintServicep:ps){System.out.println("Impressora encontrada: "+p.getName());if(p.getName().contains("Text")||p.getName().contains("Generic")){System.out.println("Impressora Selecionada: "+p.getName());impressora=p;break;}}}catch(Exceptione){e.printStackTrace();}.....
Qualquer coisa meu MSN é [email removido]
Muito bom o exemplo… me ajudou muito!
Abraços
augustocolom
eduardoluiz.ribeiro:
Olá galera, estou refazendo o código postado aí a acíma, e apareceram alguns problemas aqui, bom, eu ja debuguei o código e ví que a primeira parte (selecionar a impressora) está funcionando certinho, porém para ele funcionar eu substitui
que é o drive da impressora que eu quero testar
só que agora não está indo para o método imprime… ou seja ele seleciona a impressora mas n manda imprimir…? alguem sabe como resolver? ou eu n posso substituir o Generic ou o Text
Cara…
é muito simples, na primeira vez que você rodas seu sistema, ele irá listar as impressoras disponíveis na máquina. Tu copia o nome e joga como parâmetro nesta linha…
Olá pessoal, estou com problemas para imprimir diretamente na impressora matricial EPSON FX-2170.
Estou imprimindo os dados, só que preciso diminuir o espaçamento entre linhas via software,alguém sabé como fazer, já procurei em vários lugares mais não acho os comandos para isso