Erro na tentativa de impressão

2 respostas
C

Galera, blz

Peguei uma classe pronta e estou tentando adaptar ao meu sistema e implementar impressão nele. Após algumas simples modificações, fiz um teste; compilou sem apresentar erros, mas quando executo gera os erros abaixo que não tenho a mínima ideia do que pode ser:

****** ERRO:

Arquivo temporario : C:\WINDOWS\TEMP\Atv18124

java.lang.NullPointerException

at CadAtivo.mtPrint(CadAtivo.java:958)

at CadAtivo$12.actionPerformed(CadAtivo.java:427)

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1764)

at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1817)

at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:419)

at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:257)

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:245)

at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:227)

at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:227)

at java.awt.Component.processMouseEvent(Component.java:5093)

at java.awt.Component.processEvent(Component.java:4890)

at java.awt.Container.processEvent(Container.java:1566)

at java.awt.Component.dispatchEventImpl(Component.java:3598)

at java.awt.Container.dispatchEventImpl(Container.java:1623)

at java.awt.Component.dispatchEvent(Component.java:3439)

at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3450)

at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3165)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3095)

at java.awt.Container.dispatchEventImpl(Container.java:1609)

at java.awt.Window.dispatchEventImpl(Window.java:1585)

at java.awt.Component.dispatchEvent(Component.java:3439)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:450)

at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:197)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:144)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:136)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:99)

<<<<<<<<<<<<<<<< meu CODIGO >>>>>>>>>>>>>>>>>>>>

public void mtPrint(ActionEvent e)

{

ResultSet resultSet;

File tmpFile;

String[] docHead;

try

{

tmpFile = File.createTempFile("Atv", "");

System.out.println("Arquivo temporario : "+ tmpFile.getAbsolutePath());

docHead= new String[3];

docHead[0]="A.M.S - Softwares";

docHead[1]="Listagem de Ativos";

docHead[2]="Codigo   - Descricao                            - Usuario";
try
     {
        resultSet = this.statement.executeQuery("SELECT codigo,apelido,usuario FROM tbAtivo WHERE codigo&lt;10 ORDER BY 1");
        RandomAccessFile raf;
        try
        {
           raf = new RandomAccessFile(tmpFile, "rw");
           String aativ="";
           String rativ="";
           while(resultSet.next())
           {
              String line="";
              String nForm="";
              String crLf="\r";

              rativ=""+resultSet.getObject(1);
              if(!rativ.equals(aativ))
              {
                 if(aativ.length()&gt;0)
                    raf.writeBytes(" "+crLf);
                 raf.writeBytes("======================="+crLf);
                 raf.writeBytes("Listagem de Ativos: "+rativ+crLf);
                 raf.writeBytes("======================="+crLf);
                 raf.writeBytes(" "+crLf);
                 aativ=rativ;
              }
              nForm= (""+resultSet.getObject(2)).trim();
              nForm= "0000".substring(nForm.length())+nForm;
              line+= nForm;
              line+= " - ";
              line+= ""+resultSet.getObject(3);
              line+= " - ";
              line+= ""+resultSet.getObject(4);
              line+=crLf;
              raf.writeBytes(line);
           }
           raf.close();
        }
        catch(Exception eraf)
        {
           System.out.println("Erro abrindo arquivo : "+eraf);
        } 
     } 
     catch (SQLException ex)
     {
        System.err.println(ex);
     }
  
     PrinterJob job = PrinterJob.getPrinterJob();
     job.setPrintable(new FormPrint(tmpFile, docHead));
     job.setCopies(1);     
     if(job.printDialog())
     {
        try
        {
           job.print();
        }
        catch (Exception ej)
        {
           System.out.println("Erro de job : "+ ej);
        }
     } 
     tmpFile.delete();  
  }  
  catch(IOException eTmp)
  {
     System.out.println("Erro com arquivo tmp : "+ eTmp);
  }

}

}

class FormPrint implements Printable

{

private RandomAccessFile raf;

private String fileName;

private String[] docHead;

private Font fntnorm = new Font("Courier", Font.PLAIN, 10);

private Font fnthead = new Font("Helvetica", Font.BOLD, 12);

private int rememberedPageIndex = -1;

private long rememberedFilePointer = -1;

private boolean rememberedEOF = false;
public FormPrint(File tmpFile, String[] docHead)

{

this.docHead  = docHead;

this.fileName = tmpFile.getAbsolutePath();

try

{

raf = new RandomAccessFile(fileName, "r");

}

catch (Exception e)

{

rememberedEOF = true;

}

}
public int print(Graphics g, PageFormat pf, int pageIndex) throws PrinterException

{

try

{

if (pageIndex != rememberedPageIndex)

{

rememberedPageIndex = pageIndex;

if (rememberedEOF) return Printable.NO_SUCH_PAGE;

rememberedFilePointer = raf.getFilePointer();

}

else raf.seek(rememberedFilePointer);

g.setColor(Color.black);

int x = (int) pf.getImageableX() + 10;

int y = (int) pf.getImageableY() + 12;

g.setFont(fnthead);

g.drawString(docHead[0], x, y);

y += 16;

g.drawString(docHead[1]+ " pagina : " + pageIndex+1, x, y);

y += 16;

g.setFont(fntnorm);

g.drawString(docHead[2], x, y);

y += 36;

while (y + 12 < pf.getImageableY()+pf.getImageableHeight())

{

String line = raf.readLine();

if (line == null)

{

rememberedEOF = true;

break;

}

if(line.length()==0) line=" "+line;

g.drawString(line, x, y);

y += 12;

}

return Printable.PAGE_EXISTS;

}

catch (Exception e)

{

return Printable.NO_SUCH_PAGE;

}

}

}

2 Respostas

C

ow, pq vc não usa iReport??

C

kra,

Não uso IDE para desenvolvimento, até que gostaria no caso da impressão , mas não consegui nem mesmo instalar o ireport + jasperreport

(Win98 )

Criado 5 de agosto de 2006
Ultima resposta 8 de ago. de 2006
Respostas 2
Participantes 2