Olá pessoal estou com um probleminha na hora imprimir relatório de dados, o meu programa esta imprimindo na boa só que quando imprime o relatório ele perde a configuração que esta na String Dados… ele perde a centralização não reconhe ce o "
"… desta forma as palavras fica tudo junto… ele até faz aformatação das página (margens e tamanho de folha mas não reconhece os pula linha e centralização… alguém sabe o que fazer…
olha a classe ai embaixo de uma olhada por favor…os dados a serem impressos estão contidos nesta String Dados…
[color=“blue”]public void imprimir()
{
PrinterJob printerJob = PrinterJob.getPrinterJob();
PageFormat format = new PageFormat();
format = printerJob.pageDialog(format);
Book book = new Book();
TextWithFooter footer = new TextWithFooter(Dados);//Dados String contendo os dados a serem impressos…
book.append(footer, format);
printerJob.setPageable(book);
boolean doPrint = printerJob.printDialog();
if (doPrint)
{
try
{
printerJob.print();
}
catch (PrinterException exception)
{
System.err.println("Printing error: " + exception);
}
}
}
import java.awt.;
import java.awt.font.;
import java.awt.geom.;
import java.awt.print.;
import java.text.*;
public class TextWithFooter implements Printable
{
AttributedString mStyledText;
public TextWithFooter(String mText)
{
mStyledText = new AttributedString(mText);
}
public int print(Graphics g, PageFormat format, int pageIndex) throws PrinterException
{
Graphics2D g2d = (Graphics2D) g.create();
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();
}
g2d.dispose();
g2d = null;
try
{
Printable formatPainter = (Printable) format;
formatPainter.print(g, format, pageIndex);
}
catch (ClassCastException exception)
{ }
return Printable.PAGE_EXISTS;
}
} [/color]
Obrigado…