import javax.servlet.*;
import javax.servlet.http.*;

import java.io.*;
import javax.xml.transform.*;
import javax.xml.transform.stream.StreamSource;
import javax.xml.transform.sax.SAXResult;

import org.apache.fop.apps.Driver;
import org.apache.fop.apps.Version;
import org.apache.fop.apps.XSLTInputHandler;
import org.apache.fop.messaging.MessageHandler;


public class ConvertToPDF
{
	
  	private TransformerFactory xsltFact = TransformerFactory.newInstance();    
    
    
    public ConvertToPDF()
    {
    	System.out.println("This ConvertToPDF was designed by Gul Akbar");
    	System.out.println("This is still in the development stages!");
    }//Constructor()

    
    
    
	public void convertXmlToPDF( String xmlsource, String xslsource, HttpServletResponse response )
	{
	  response.setContentType("application/pdf");
      
      try {

        Reader xmlReader = new StringReader(xmlsource);
        Reader xslReader = new StringReader(xslsource);

        Source xml = new StreamSource(xmlReader);
        Source xsl = new StreamSource(xslReader);		
		
		
		Driver driver =new Driver();
		driver.setOutputStream(response.getOutputStream());
		driver.setRenderer(Driver.RENDER_PDF);
		
		Transformer transformer = TransformerFactory.newInstance().newTransformer(xsl);
		transformer.transform(xml, new SAXResult(driver.getContentHandler()));
        }//try
      catch (Exception ex) {
        ex.printStackTrace();
        }//catch
        
    }//convertXmlToPDF()




	public void convertXmlToPDF( String xmlsource, File xslPath, HttpServletResponse response )
	{
	  response.setContentType("application/pdf");
      
      try {
        Reader xmlReader = new StringReader(xmlsource);

        Source xml = new StreamSource(xmlReader);
        Source xsl = new StreamSource(xslPath);		
		
		
		Driver driver =new Driver();
		driver.setOutputStream(response.getOutputStream());
		driver.setRenderer(Driver.RENDER_PDF);
		
		Transformer transformer = TransformerFactory.newInstance().newTransformer(xsl);
		transformer.transform(xml, new SAXResult(driver.getContentHandler()));
		
        }//try
      catch (Exception ex) {
        ex.printStackTrace();
        }//catch
        
    }//convertXmlToPDF()








}//End all