Dúvida com impressão de String era[Quero vê o gênio que vai sabe essa]

Como fazer quebra de linhas para imprimir uma página na impressora, enviando um string como parametro?

Já vou avisando que \n, \t, \r não adiantam…
Se alguém tem algum método ou classe que faça impressão de páginas por favor me diga onde tem ou me mande!

Valeu!

Eu sei a solução caro amigo,

Eu jogo para um textarea e pego linha a linha no mesmo, o codigo so tenho em casa, se precisar me da um alo.

Na verdade, eu tenho um metodo generico que envio um textarea ou um jlist e ele imprimi o resto.

Me manda então o teu código cara, por favor!
To tentando fazer isso a uma semana e bah…já tentei de tudo, na ultima eu tentei separar as linhas com o StringTokenizer, porém também não deu certo!

Ve se me manda ai!

Valeu!

[quote=“mdtorbis”]Como fazer quebra de linhas para imprimir uma página na impressora, enviando um string como parametro?

Já vou avisando que \n, \t, \r não adiantam…
Se alguém tem algum método ou classe que faça impressão de páginas por favor me diga onde tem ou me mande!

Valeu![/quote]

E \r\n juntos?
Return + new line

mdtorbis cara me procura no MSN a noite, pq posso esquecer, mas usa o procura que talvez ja tenha postado esse codigo ai.

Aê…já tentei de tudo para quebrar as linas da String \n, \t, \r, todas as suas combinações \r\n, \n\r…já tentei usar um tal System.getProperty(“line.separator”) vi por ai, mas, infelizmente nada disso funciona!

Será que alguém tem uma solução que realmente funcione?
Ta difícil de encontrar!

java.awt.font.TextMeasurer

java.awt.font.LineBreakMeasurer

Veja este link:

http://publib.boulder.ibm.com/infocenter/wsphelp/index.jsp?topic=/com.sun.api.doc/java/awt/font/LineBreakMeasurer.html

Simplesmente dizer que tentou de tudo e não deu certo não ajuda, na medida que ninguém aqui deve ter captado o quê exatamente você está tentando fazer.

Eu, por exemplo, quando uso BufferedWriter, tanto enviando um buffer que contenha “…\r\n…” ou o método bw.newLine() funcionam, seja em impressoras matriciais ou de página.

Tente mostrar o que você está fazendo!

Ok…ta ai a minha classe Imprimir:

 import java.awt.*; 
 import java.awt.font.*;
 import java.awt.geom.*;
 import java.awt.print.*;
 import java.text.*;

 public class Imprimir implements Printable {

    private static AttributedString mStyledText;

    public void imprimir(String texto) 
    {
        mStyledText = new AttributedString(texto);
        
        PrinterJob printerJob = PrinterJob.getPrinterJob();
 
        Book book = new Book();
 
        book.append(new Imprimir(), new PageFormat());

        printerJob.setPageable(book);
 
        boolean doPrint = printerJob.printDialog();
        if (doPrint) 
        {
            try 
              {
                printerJob.print();
              } 
            catch (PrinterException exception) { System.err.println("Printing error: " + exception); }
        }
    }

    public int print(Graphics g, PageFormat format, int pageIndex) 
    {
        Graphics2D g2d = (Graphics2D) g;         
        g2d.translate(format.getImageableX(), format.getImageableY());
        g2d.setPaint(Color.black);
        Point2D.Float pen = new Point2D.Float();
        AttributedCharacterIterator charIterator = mStyledText.getIterator();
        LineBreakMeasurer measurer = new LineBreakMeasurer(charIterator, g2d.getFontRenderContext());
        float wrappingWidth = (float) format.getImageableWidth();
 
        while (measurer.getPosition() < charIterator.getEndIndex()) 
        {
            TextLayout layout = measurer.nextLayout(wrappingWidth);
            pen.y += layout.getAscent();
            float dx = layout.isLeftToRight()? 0 : (wrappingWidth - layout.getAdvance());
            layout.draw(g2d, pen.x + dx, pen.y);
            pen.y += layout.getDescent() + layout.getLeading();
        }

        return Printable.PAGE_EXISTS;
     }
}
 

Logo, em outra classe eu chamo esse método passando como parametro uma String teste:

    imprime = new Imprimir();
    imprime.imprimir("Linha 1\r\nLinha 2\n\rLinha 3\t\nLinha 4\n\tLinha 5\n\n\nLinha 6"+System.getProperty("line.separator")+"Linha 7");

Dai na impressora sai assim: Linha 1Linha 2Linha 3Linha 4Linha 5Linha 6Linha 7!

Espero ter sido claro =)
Por favor me ajudem a quebrar as linhas dessa maldita String :wink:

Tente usar barras duplas, apenas para ver no que dá:

imprime.imprimir("Linha 1\\r\\nLinha 2\\n\\rLinha 3...

Não rolo também…
Será que alguém por ai já não fez uma classe que faça o que eu to querendo, ou seja, imprimir uma String fazendo quebra de linhas quando eu desejar =)

To com a mesma duvida, alguem sabe como fazer?

[quote=lcsoftware]Eu sei a solução caro amigo,

Eu jogo para um textarea e pego linha a linha no mesmo, o codigo so tenho em casa, se precisar me da um alo.

Na verdade, eu tenho um metodo generico que envio um textarea ou um jlist e ele imprimi o resto.[/quote]

Olá… sou novo aqui na comunidade e estava pesquisando na net e descobri esse tópico.
Kra vc poderia me passar esse codigo… estou ficando maluco já.

meu email: marcelobertinattodo@gmail.com

valeu kra