Olá ! Faz tempo que não posto aqui ! Bom vamos a minha pergunta:
Alguém pode ajudar a montar um classe que receba como parametro uma string formatada (com caracteres como \n e \t) e depois imprimir essa String ? Tô quebrando a cabeça aqui, mas não estou conseguindo fazer … Isso é muito importante e se alguém puder me ajudar ficaria muito agradecido !
no caso são soh esses 2 casos q vc quer tratar??? :roll:
vc pode definir entaum constantes ou alguma coisa do genero
que vc passe como parametro e o seu método reconheça qual opção vc
quer realizar tipo assim:
/**Recebecomoparametrouminteiroqueindicaqualaopçãodesejada*/publicvoidmaniString(intop){// op = 1 -> \n// op = 2 -> \tif(op==1)suaString+="\n";elseif(op==2)suaString+="\t";}
espero q ajude
[]'s
Erko Bridee
F
FalconPJ
Acho que me expliquei mal, mas o esquema é assim:
A minha string contem caracteres de quebra de linha e tabulução (\n e \t) e gostaria de imprimir (mandar para impressora) essa String exatamente do moda que ele vier.
Ex:
Nome: Fulano de tal
Idade: 20
e gostaria q saisse assim na impressora… até consegui imprimir, mas sai tudo na mesma linha e tudo pela metade.
V
vinciPJ
System.out.println("Acho \n\t que \t não entendi.\n Esse código \n\t\t\t não resolve? ");
E
ErkoPJ
hum tah cortando
q extranho
como o vinci colocou
vc jah testou?
D
darcyneyPJ
Acho que o problema dele deve estar na impressora e/ou driver que, acredito, não esta sabendo interpretar os comandos.
F
FalconPJ
Tá estranho mesmo… Vou tentar dar mais uma olhada para ver se fiz alguma coisa errada. Mas será que o problema pode ser no drive da impressora ?
importjava.net.*;importjava.awt.Color;importjava.awt.Graphics;importjava.awt.Graphics2D;importjava.awt.print.PageFormat;importjava.awt.print.Printable;importjava.awt.print.PrinterException;importjava.awt.print.PrinterJob;importjavax.print.PrintService;importjavax.print.attribute.HashPrintRequestAttributeSet;importjavax.print.attribute.PrintRequestAttributeSet;importjavax.print.attribute.standard.Copies;importjavax.print.attribute.standard.JobName;importjavax.print.attribute.standard.OrientationRequested;publicclassPrint2DPrinterJobimplementsPrintable{privateStringtext;/** * Efetua impressão do texto passado como parâmetro. * @param texto */publicPrint2DPrinterJob(Stringtexto){text=texto;PrintRequestAttributeSetaset=newHashPrintRequestAttributeSet();aset.add(OrientationRequested.PORTRAIT);aset.add(newCopies(1));aset.add(newJobName("Relatório",null));/* * Crai um "Printer job" */PrinterJobpj=PrinterJob.getPrinterJob();pj.setPrintable(this);/* * Localiza um serviço de impressão * que possa tratar esta requisção. */PrintService[]services=PrinterJob.lookupPrintServices();if(services.length>0){//System.out.println("Impressora seleionada" +//services[0].getName()); só ia mostrar a impressora seleionadatry{pj.setPrintService(services[0]);pj.pageDialog(aset);if(pj.printDialog(aset)){pj.print(aset);}}catch(PrinterExceptionpe){System.err.println(pe);}}}/** * Método necessário quando a interface Printable é implementada. */publicintprint(Graphicsg,PageFormatpf,intpageIndex){if(pageIndex==0){Graphics2Dg2d=(Graphics2D)g;g2d.translate(pf.getImageableX(),pf.getImageableY());g2d.setColor(Color.black);/* * Imprime o texto passado, na coluna 10 e na linha 5 * da página a ser impressa */g2d.drawString(text,2,20);returnPrintable.PAGE_EXISTS;}else{returnPrintable.NO_SUCH_PAGE;}}}
Porém a String passada é impressa toda um uma linha só, e no lugar do \n ou \t aparece uns quadrados… alguém pode me dar uma luz ? Por favor !