Dúvidas sobre PrinterJob, alguém sabe? muito rápido

1 resposta
D

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.<em>;

import java.awt.font.</em>;

import java.awt.geom.<em>;

import java.awt.print.</em>;

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

1 Resposta

D

Poxa… ninguém sabe sobre PrinterJob… então o que vcs costumam usar para fazer impressão de relatórios???
se puderem me dar umas dicas agradeço…

Criado 19 de novembro de 2003
Ultima resposta 19 de nov. de 2003
Respostas 1
Participantes 1