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<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()>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;
}
}
}