Salve raga
Per stampare una pagina ho fatto override del metodo print() nella funzione CollaudoPrint in questo modo:
nella funzione chiamante metto:codice:public int print(Graphics grap, PageFormat pageFormat, int pageIndex) throws PrinterException { if(pageIndex > 0) return NO_SUCH_PAGE; Font f; Paper paper = new Paper(); paper.setImageableArea(42, 22, 500, 800); pageFormat.setPaper(paper); int x = (int)pageFormat.getImageableX(); int y = (int)pageFormat.getImageableY(); int w = (int)pageFormat.getImageableWidth(); int h = (int)pageFormat.getImageableHeight(); int sd=x; int sb=y; //rettangolo totale grap.drawRect(x,y,w,h); //prima righa grap.drawRect(x,y,w,30); sb=sb+30; f = new Font("Dialog", Font.PLAIN, 20); grap.setFont(f); String stringa="Ecco fatto !"; grap.drawString(stringa,x+132,y+23); return PAGE_EXISTS;
codice:PrinterJob pj = PrinterJob.getPrinterJob(); public FrameCertificatoCollaudo() { pj.printDialog(); pj.setPrintable(new CollaudoPrint())); try { pj.print(); } catch (PrinterException e) {e.printStackTrace();} }
Ora tutto funziona perfettamente.
Il mio problema è che devo prendere dei dati dal database e inserirli in questo foglio, ma se i dati sono numerosi esso deve stamparlo in più pagine. come faccio?
so che il metodo print() ritorna una sola pagina esistente.
grazie per i suggerimenti

Rispondi quotando