Salve a tutti,
ho il seguente codice per la stampa di report con java. In pratica riceve testo_da_stampare che è una stringa suddivisa dai caratteri "\n", che deve essere splittata appunto per caratteri "\n" ed ogni split deve essere stampato su una riga del foglio.
Prima di mettere lo split mi stampava una sola riga, adesso invece non me ne stampa nemmeno una. Ad ogni modo come faccio a stampare una nuova riga? il mio codice è il seguente:
codice:
import java.awt.print.*;
import java.awt.*;
public class Stampa implements Printable {
String testo_da_stampare;
public Stampa(String s) throws PrinterException{
PrinterJob pj = PrinterJob.getPrinterJob();
testo_da_stampare=s;
pj.printDialog();
PageFormat pf = pj.defaultPage();
Paper paper = new Paper();
double margin = 36; // half inch
paper.setImageableArea(margin, margin, paper.getWidth() - margin * 2, paper.getHeight()
- margin * 2);
pf.setPaper(paper);
pj.setPrintable(this, pf);
//pj.setPrintable(this);
pj.print();
}
public int print(Graphics grap,
PageFormat pageFormat, int pageIndex) throws PrinterException
{
if(pageIndex > 0)
return NO_SUCH_PAGE;
String[] str = testo_da_stampare.split("\\n");
int i = 0;
while(i <= str.length)
{
System.out.println(str[i]);
System.out.println(str.length);
grap.setColor(Color.BLACK);
grap.drawString(str[i], (int)pageFormat.getImageableX(),
(int)pageFormat.getImageableY()+5);
i++;
}
/*grap.setColor(Color.BLACK);
grap.drawLine((int)pageFormat.getImageableX(), (int)pageFormat.getImageableY(),
(int)pageFormat.getImageableWidth(), (int)pageFormat.getImageableHeight());*/
return PAGE_EXISTS;
}
}
vi ringrazio in anticipo,
neptune.