Senhores presciso de ajuda…
Tenho uma classe (DesenhaTermo.java) que estende de um JPanel e implementa uma Printable , onde tem a função de desenhar um texto recebido como argumento.
A classe que acessa esta primeira vem a ser uma destinada para impressão, a qual envia a string a ser imprimida para a classe DesenhaTermo.java pega o JPanel formado e envia para impressao através de um printjob.print();
O problema é que no formar o JPanel as linhas justificadas saem normais, isto é justificadas como eu queria, mas quando este JPanel é mandado para a impressão, a justificação cai fora, sendo que os paragrafos, centralizações, negritos continuam normalmente, ficando somente “desjustificado” …
obs: para desenhar o texto justificado eu uso um objeto TextLayout e seu método getJustifiedLayout assim:
[code]
//pega o que está na string e adiciona a str
AttributedString str = new AttributedString(line);
//adiciona as propriedades na fonte do texto
str.addAttribute (TextAttribute.FONT, new Font(FONTE, style,tamanho));
LineBreakMeasurer quebrador = new LineBreakMeasurer(str.getIterator(), gr.getFontRenderContext());
//inicializa layout
TextLayout linha = quebrador.nextLayout(larguraImprimivel);
//justifica linha
linha = linha.getJustifiedLayout(larguraImprimivel);
//Desenha a linha no JPanel
while (linha != null) {
posY += linha.getAscent();
linha.draw(gr, posX, posY);
posY += linha.getDescent() + linha.getLeading();
linha = quebrador.nextLayout(larguraImprimivel);
}
[/code]
e para imprimir eu uso
[code]
try {
//job é um objeto PrinterJob inicializado anteriormente assim como pageFormat que é um objeto PageFormat
job.setPrintable (new DesenhaTermo(), pageFormat);
if (job.printDialog()) {
job.print();
}
} catch (Exception pex) {
System.err.println(" Erro ao imprimir o termo " + pex);
}
[/code][/code]