Na classe a seguir como eu consigio controlar a inpressão de paginas?
//Classe responsável por manipular a impressora
import javax.swing.<em>;
import java.awt.</em>;
import java.awt.print.<em>;
import <a href="http://java.io">java.io</a>.</em>;
public class LMSPrint extends JComponent implements Printable
{
private String file;
private int cont=0;
public LMSPrint(String f)//String que será impressa
{
file=f;
}
public void imprimir(String f){//definição das rotinas de impressão
PrinterJob pjob = PrinterJob.getPrinterJob();
PageFormat pf = pjob.defaultPage();
pjob.setPrintable(new LMSPrint(f), pf);
try
{
if (pjob.printDialog())
{
pjob.print();
}
}
catch (PrinterException e)
{
}
}
public int print(Graphics g, PageFormat pf, int pageIndex)//rotinha que envias a String para
//a impressora
{
Graphics2D g2d = (Graphics2D)g;
g2d.translate(pf.getImageableX(), pf.getImageableY());
Font Font2 = new Font("Times new Roman", Font.BOLD,10);
Font Font1 = new Font("Arial Black",Font.PLAIN,14);
Font Font3 = new Font("Times new Roman", Font.ITALIC,8);
int PrintLocation = 20;
int PageWidth = 0;
if (pf.getOrientation() == PageFormat.PORTRAIT)
{
PageWidth = 600;
}
else
if (pf.getOrientation() == PageFormat.LANDSCAPE)
{
PageWidth = 1000;
}
PrintLocation +=20;
g.setColor(Color.blue);
g.setFont(Font1);
g.drawString("Analisador Léxico - LMS",10,10);
g.setFont(Font3);
g.drawString("Versão 1.0.0",10,20);
g.setColor(Color.black);
g.drawLine(10,30,PageWidth,30 );
g.setFont(Font2);
String str="";
try{
BufferedWriter arq=new BufferedWriter(new FileWriter("spoll.tmp"));
arq.write(file);
arq.close();
}catch (IOException err) {
}
int y=0;
try
{
BufferedReader ler= new BufferedReader(new FileReader("spoll.tmp"));
while((str=ler.readLine())!=null){
g.drawString(str,10,PrintLocation);
PrintLocation+=10;
}
ler.close();
}
catch(IOException e){
}
boolean sucesso = (new File("spoll.tmp")).delete();//apagar arquivo
return Printable.NO_SUCH_PAGE;
}
}