Imprimir String

8 respostas
F

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 !

Obrigado,

8 Respostas

E

eae blz?

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:

/*
 * Recebe como parametro um inteiro que indica qual a opção desejada
 */
public void maniString( int op ) {

   // op = 1 -> \n
   // op = 2 -> \t

   if( op == 1 )
      suaString += "\n";
   else if( op == 2 ) 
      suaString += "\t";

}

:wink:

espero q ajude

[]'s
Erko Bridee

F

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
System.out.println("Acho \n\t que \t não entendi.\n Esse código \n\t\t\t não resolve? ");
E

hum tah cortando

q extranho

como o vinci colocou

vc jah testou?

:wink:

D

Acho que o problema dele deve estar na impressora e/ou driver que, acredito, não esta sabendo interpretar os comandos.

F

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 ?

B

System.out.println(“java”+System.getProperty(“line.separator”)+“is”+System.getProperty(“line.separator”)+“everywhere”);

isso funciona … i guess heheh

F

Eu usei o código abaixo para imprimir a String:

import java.net.*; 

import java.awt.Color; 
import java.awt.Graphics; 
import java.awt.Graphics2D; 
import java.awt.print.PageFormat; 
import java.awt.print.Printable; 
import java.awt.print.PrinterException; 
import java.awt.print.PrinterJob; 

import javax.print.PrintService; 
import javax.print.attribute.HashPrintRequestAttributeSet; 
import javax.print.attribute.PrintRequestAttributeSet; 
import javax.print.attribute.standard.Copies; 
import javax.print.attribute.standard.JobName; 
import javax.print.attribute.standard.OrientationRequested; 

public class Print2DPrinterJob implements Printable { 
	   private String text; 
	   
	   /** 
	    * Efetua impressão do texto passado como parâmetro. 
	    * @param texto 
	    */ 
	   public Print2DPrinterJob(String texto) { 
	       text = texto; 
	       PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet(); 
	       aset.add(OrientationRequested.PORTRAIT); 
	       aset.add(new Copies(1)); 
	       aset.add(new JobName("Relatório", null)); 
	       /* 
	        * Crai um "Printer job" 
	        */ 
	       PrinterJob pj = 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 seleionada
	           try { 
	               pj.setPrintService(services[0]); 
	               pj.pageDialog(aset); 
	               if (pj.printDialog(aset)) { 
	                   pj.print(aset); 
	               } 
	           } catch (PrinterException pe) { 
	               System.err.println(pe); 
	           } 
	       } 
	   } 

	   /** 
	    * Método necessário quando a interface Printable é implementada. 
	    */ 
	   public int print(Graphics g, PageFormat pf, int pageIndex) { 
	   	
	    if (pageIndex == 0) { 
	           Graphics2D g2d = (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); 

	           return Printable.PAGE_EXISTS; 
	       } else { 
	           return Printable.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 !

Criado 17 de setembro de 2004
Ultima resposta 18 de set. de 2004
Respostas 8
Participantes 5