cancel
Showing results for 
Search instead for 
Did you mean: 

nullException when I create pdf using FOP library

Former Member
0 Kudos

This is my code :  //in java class 

public IWDCachedWebResource convertXML2PDF(File xml, File xslt) throws FOPException, TransformerException, IOException      {               FopFactory fopFactory = FopFactory.newInstance();  

           FOUserAgent foUserAgent =fopFactory.newFOUserAgent(); 

/* OutputStream out = new java.io.FileOutputStream("pdffile.pdf")

;  out = new java.io.BufferedOutputStream(out);*/        

        ByteArrayOutputStream out = new ByteArrayOutputStream();         

        Fop fop =fopFactory.newFop(MimeConstants.MIME_PDF, foUserAgent, out);          

       TransformerFactory factory =TransformerFactory.newInstance();           

      Transformer transformer =factory.newTransformer(newStreamSource(xslt));            

     transformer.setParameter("versionParam", "2.0");    

             Source src = new StreamSource(xml);    

             Result res = new SAXResult(fop.getDefaultHandler());        

         transformer.transform(src,res);         

        out.close();             

    byte [] pdfContent = ((ByteArrayOutputStream) out).toByteArray();            

  IWDCachedWebResource pdfResource = WDWebResource.getWebResource(pdfContent,WDWebResourceType.PDF);

  if(pdfResource != null)          

      {  return pdfResource;   }

else   return null;              

  }// end if  else  

if(transformer!=null)   

{  System.out.print("null exception in transformer");

  return null;  }

     } // end method

  //**************************************************************************************************************************************************************************

// in Web Dynpro code 

public void ConvertXML2PDF( ) 

  {  //@@begin ConvertXML2PDF()

File xmlfile = new File("inputReportXML.xml"); 

File xsltfile = new File("inputReportXSL.xsl"); 

CreatePDF createPDF = new CreatePDF();

try {  IWDCachedWebResource pdfResource =createPDF.convertXML2PDF( xmlfile , xsltfile);

  if( pdfResource != null)

{      wdComponentAPI.getWindowManager().createExternalWindow( pdfResource.getURL(),"Test View",true).open();

}

else  {  wdComponentAPI.getMessageManager().reportException( "PDF Resource is empty"); }  } 

catch( WDURLException e) 

   {  e.printStackTrace()

;  } catch (FOPException e) {  e.printStackTrace()

;}   catch (TransformerException e) {  e.printStackTrace();

  }   catch (IOException e) {  e.printStackTrac();

}

}

  //************************************************************************************************************************************************ 

//This is the exception that apears:

  java.lang.NullPointerException: while trying to invoke the method javax.xml.transform.Transformer.setParameter(java.lang.String, java.lang.Object) of an object loaded from local variable 'transformer'

  //***********************************************************************************************

  I added inputReportXML.xml and inputReportXSL.xsl under WEB-INF Is this the true way?     transformer.setParameter("versionParam", "2.0"); the exception apears because this line how i can correct this exception? 

    Thanks,

Accepted Solutions (0)

Answers (1)

Answers (1)

Sreejith1
Contributor
0 Kudos

Hi,

Pls gothrough this lik, it explains every thing which you needs

http://santy.wikidot.com/xslfoapp-controller-with-fop-mods