Hello...i'm doing some swing application...the functions including to print lists of programs in a table....so rite now i can print those lists with page number ...but my boss wants to include Title in each page...how can i include the title![]()
This are the code to print table....can anyone give any idea
Code:private void btnPrintActionPerformed(ActionEvent evt){ System.out.println("action"); collapseTableData(); PrinterJob printJob = PrinterJob.getPrinterJob(); printJob.setPrintable(this); printJob.printDialog(); try { printJob.print(); } catch (Exception PrintException) { } } public int print(Graphics g, PageFormat pageFormat, int pageIndex) throws PrinterException { Graphics2D g2 = (Graphics2D) g; g2.setColor(Color.black); int fontHeight=g2.getFontMetrics().getHeight(); int fontDesent=g2.getFontMetrics().getDescent(); //leave room for page number double pageHeight = pageFormat.getImageableHeight()-fontHeight; double pageWidth = pageFormat.getImageableWidth(); double tableWidth = (double)tblProgram.getColumnModel().getTotalColumnWidth(); double scale = 1; if (tableWidth >= pageWidth) { scale = pageWidth / tableWidth; } double headerHeightOnPage = tblProgram.getTableHeader().getHeight()*scale; double tableWidthOnPage = tableWidth*scale; double oneRowHeight = (tblProgram.getRowHeight()+ tblProgram.getRowMargin())*scale; int numRowsOnAPage = (int)((pageHeight-headerHeightOnPage)/oneRowHeight); double pageHeightForTable = oneRowHeight * numRowsOnAPage; int totalNumPages = (int)Math.ceil(((double)tblProgram.getRowCount()) / numRowsOnAPage); if(pageIndex>=totalNumPages) { return NO_SUCH_PAGE; } g2.translate(pageFormat.getImageableX(), pageFormat.getImageableY()); //bottom center g2.drawString("Page: " +(pageIndex+1), (int)pageWidth/2-35, (int)(pageHeight +fontHeight-fontDesent)); g2.drawString("Ilmu Tools For Uni ", (int)pageWidth/2-35, (int)(pageHeight +fontHeight-fontDesent)); g2.translate(0f,headerHeightOnPage); g2.translate(0f,-pageIndex*pageHeightForTable); //If this piece of the table is smaller than the size available, //clip to the appropriate bounds. if (pageIndex + 1 == totalNumPages) { int lastRowPrinted = numRowsOnAPage * pageIndex; int numRowsLeft = tblProgram.getRowCount() - lastRowPrinted; g2.setClip(0, (int)(pageHeightForTable * pageIndex), (int) Math.ceil(tableWidthOnPage), (int) Math.ceil(oneRowHeight * numRowsLeft)); } //else clip to the entire area available. else{ g2.setClip(0, (int)(pageHeightForTable*pageIndex), (int) Math.ceil(tableWidthOnPage), (int) Math.ceil(pageHeightForTable)); } g2.scale(scale,scale); tblProgram.paint(g2); g2.scale(1/scale,1/scale); g2.translate(0f,pageIndex*pageHeightForTable); g2.translate(0f, -headerHeightOnPage); g2.setClip(0, 0,(int) Math.ceil(tableWidthOnPage), (int)Math.ceil(headerHeightOnPage)); g2.scale(scale,scale); tblProgram.getTableHeader().paint(g2); //paint header at top return Printable.PAGE_EXISTS; }



Reply With Quote


Bookmarks