To imprimindo uma JTabel (Component), mas nao aparece a primeira linha vertical (margem esquerda) e a primeira linha horizontal (margem superior). Alguém sabe como corrigir isso?
Estou usando esta classe. Ela imprime o componente, ou seja, a JTable e nao somente seu conteúdo. Estou imprimindo o componente porque nao consegui imprimir somente o texto. Eu lia o texto de um vector e concatenava usando “\n”. Usei tambem, “\r” e nao funcionou. Se souber como fazer pode postar também.
importjava.awt.*;importjavax.swing.*;importjava.awt.print.*;/** A simple utility class that lets you very simply print * an arbitrary component. Just pass the component to the * PrintUtilities.printComponent. The component you want to * print doesn't need a print method and doesn't have to * implement any interface or do anything special at all. * <P> * If you are going to be printing many times, it is marginally more * efficient to first do the following: * <PRE> * PrintUtilities printHelper = new PrintUtilities(theComponent); * </PRE> * then later do printHelper.print(). But this is a very tiny * difference, so in most cases just do the simpler * PrintUtilities.printComponent(componentToBePrinted). * * 7/99 Marty Hall, http://www.apl.jhu.edu/~hall/java/ * May be freely used or adapted. */publicclassPrintUtilitiesimplementsPrintable{privateComponentcomponentToBePrinted;publicstaticvoidprintComponent(Componentc){newPrintUtilities(c).print();}publicPrintUtilities(ComponentcomponentToBePrinted){this.componentToBePrinted=componentToBePrinted;}publicvoidprint(){PrinterJobprintJob=PrinterJob.getPrinterJob();printJob.setPrintable(this);if(printJob.printDialog())try{printJob.print();}catch(PrinterExceptionpe){System.out.println("Error printing: "+pe);}}publicintprint(Graphicsg,PageFormatpageFormat,intpageIndex){if(pageIndex>0){return(NO_SUCH_PAGE);}else{Graphics2Dg2d=(Graphics2D)g;Stringcabecalho="Visitas do dia:___/___/___";g2d.setFont(newFont("helvetica",Font.PLAIN,14));g2d.drawString(cabecalho,(float)pageFormat.getImageableX()+160,(float)pageFormat.getImageableY()+15);g2d.translate(pageFormat.getImageableX(),pageFormat.getImageableY()+50);disableDoubleBuffering(componentToBePrinted);componentToBePrinted.paint(g2d);enableDoubleBuffering(componentToBePrinted);return(PAGE_EXISTS);}}/** The speed and quality of printing suffers dramatically if * any of the containers have double buffering turned on. * So this turns if off globally. * @see enableDoubleBuffering */publicstaticvoiddisableDoubleBuffering(Componentc){RepaintManagercurrentManager=RepaintManager.currentManager(c);currentManager.setDoubleBufferingEnabled(false);}/** Re-enables double buffering globally. */publicstaticvoidenableDoubleBuffering(Componentc){RepaintManagercurrentManager=RepaintManager.currentManager(c);currentManager.setDoubleBufferingEnabled(true);}}