boa tarde
estou desenvolvendo uma aplicacao que tem uma parte de pagamento
e nesta parte existe um link para imprimi a data a hora e o valor pago no recibo.
a impressora que eu tenho eh uma Procom 5900
gostaria de saber como posso fazer pra mandar uma string para esta impressora?
É só mandar imprimir ué.
Se for web: print();
Se for no Word: ctrl + p.
E por ai vai.
mas eu quero mandar uma string pra imprimir… o texto nao vai ta prontinho , entendeu?
Vc pode então:
- Criar um arquivo txt.
- Abrir este arquivo e adicionar sua String
- Invocar a impressão.
Acho que aqui no guj mesmo tem exemplos de como trabalhar com arquivos.
eh eu tentei usa a busca mas num funciona
[quote=luzeras] Procom 5900
gostaria de saber como posso fazer pra mandar uma string para esta impressora?[/quote]
Olá! Estou assumindo que você quer mandar direto para a impressora e que seu sistema é Desktop. Primeiro você tem que saber se a impressora é serial ou paralela e aí mandar a String direto para essa porta.
Porque se for web, só se você tiver a impressora como ponto de rede ou ligada ao servidor e fizer um servlet para imprimir direto na mesma (o que deve dar muito gargalo por conta da velocidade de impressão).
entao
eh web mas ira funcionar localmente.
aimpressora eh porta serial
Seguinte não tenho experiência com java mas vou te dar umas dicas igual :). Cria um applet (tem que assinar ele, isto tem tutorias aqui no guj que pode te ajudar), para poder jogar as informações na web para a máquina client que esta acessando o sistema, ou usa um ActiveX, mas este só funciona em IE mas é mais barbada de desenvolver.
Acho que é isto que você precisa…
falou
[quote=fabiozoroastro]É só mandar imprimir ué.
Se for web: print();
Se for no Word: ctrl + p.
E por ai vai.
[/quote]
LOL
Ele não está falando disso.
Aplicações desktop em java para imprimir é dificil a beça. Comando print é javascript.
pessoal consegui monta uma classe que imprimi
fiz o teste usando a classe como java desktop e funciono
mas fiz ela pro meu projeto web e nao funcionou
ele abre o iconezinho da impressora embaixo no windows , fica uns 2seg e depois desaparece , e nao imprimi e nem da erro.
Alguem sabe o que posso fazer pra arrumar isso?!
Posta a classe que você fez, talvez seja pouca coisa para arrumar…
=]
ai vai a classe
package Ortodens;
import javax.print.*;
import java.io.*;
import javax.print.attribute.standard.Copies;
import javax.print.attribute.HashDocAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;
import javax.print.attribute.HashPrintRequestAttributeSet;
import Ortodens.forms.ParcelasFormulario;
public class ReciboImp {
public ReciboImp(boolean mostrarDialogo,ParcelasFormulario pf) {
System.out.println(mostrarDialogo);
try {
// Localiza todas as impressoras com suporte a arquivos txt
PrintService[] servicosImpressao =PrintServiceLookup.lookupPrintServices(
DocFlavor.INPUT_STREAM.AUTOSENSE, null);
//System.out.println("Impressoras com suporte: "+ servicosImpressao.length);
// Localiza a impressora padrão
PrintService impressora = PrintServiceLookup.lookupDefaultPrintService();
//System.out.println("Impressora: " + impressora.getName());
//System.out.println("Imprimindo arquivo-texto");
// Definição de atributos do conteúdo a ser impresso:
DocFlavor docFlavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
// Atributos de impressão do documento
HashDocAttributeSet attributes = new HashDocAttributeSet();
// InputStream apontando para o conteúdo a ser impresso
FileOutputStream fil = new FileOutputStream ("c.txt");
PrintStream p = new PrintStream (fil);
p.print(pf.getDataPag()+ "***"+ pf.getValorRec());
FileInputStream fi = new FileInputStream("c.txt");
// Cria um Doc para impressão a partir do arquivo exemplo.txt
Doc documentoTexto = new SimpleDoc(fi, docFlavor, attributes);
// Configura o conjunto de parametros para a impressora
PrintRequestAttributeSet printerAttributes = new HashPrintRequestAttributeSet();
System.out.println(mostrarDialogo);
//mostrarDialogo = false;
if (mostrarDialogo) {
// exibe um dialogo de configuracoes de impressao
PrintService servico = ServiceUI.printDialog(null, 320, 240,
servicosImpressao, impressora, docFlavor, printerAttributes);
if (servico != null) {
DocPrintJob printJob = servico.createPrintJob();
printJob.print(documentoTexto, printerAttributes);
}
}
else {
// Cria uma tarefa de impressão
DocPrintJob printJob = impressora.createPrintJob();
// Adiciona propriedade de impressão: imprimir duas cópias
printerAttributes.add(new Copies(1));
// Imprime o documento sem exibir uma tela de dialogo
printJob.print(documentoTexto, printerAttributes);
}
}
catch(IOException e){
//System.out.println("ERRO IO"+e.getMessage());
}
catch (PrintException ex2) {
//System.out.println("Erro de impressão: " + ex2.getMessage());
}
}
}
Seguinte quer imprimir via sistema desktop ou web?
se for web da para fazer do jeito que falei, se for desktop envia os comandos para porta certa e era isto.
assim , o sistema eh em ‘formato’ de web , mas ele funcionará localmente…
esse codigo q eu mandei ele funciona as vzes e as vzes nao funciona .
Quando eu mando imprimir pagina teste dessa impressora vai normalmente , mas quando uso o programa java pra imprimir fica dando erro de impressao , ou so aparece e some o iconezinho.
ninguem sabe como posso resolver isso?!