Hi,

I am currently working on a
project which convert binary data in tiff format  into
PDF format. I refer to  the example(FopServlet.java)
and always got  error "Error 500: Content is
not allowed in prolog. ". I could not figure out what
the problem is.  I was stuch by this. Please help me.

Here is the peice of codes. Would you please take a
look and give me a suggestion. I will greatly
appreciate it.  

BTW, the binary data format from database which will
be displayed on the web is in tiff format, not a
formatting object. If it can be displayed directly on
the web in pdf format, it is not necessary to convert
it into pdf first.

thanks,

Jerry

***********************************************************
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import java.util.zip.*;
import java.sql.*;
import java.text.*;


import java.net.*;
import java.util.Properties;
import java.awt.image.*;
import com.sun.media.jai.codec.*;
import com.sun.media.jai.*;
import javax.media.jai.JAI;
import javax.media.jai.*;
import javax.media.jai.RenderedOp;
import javax.media.jai.PlanarImage;
import javax.media.jai.OpImage;
import javax.media.jai.util.*;
import
javax.media.jai.remote.SerializableRenderedImage;
import java.awt.image.renderable.ParameterBlock;
import java.lang.Object;
import java.awt.Image;
import javax.swing.ImageIcon;
import java.io.ByteArrayOutputStream.*;


import com.csi.utils.StringUtils;
import com.csi.daserver.global.*;
import com.csi.dcserver.objects.DCSession;
import com.csi.dcserver.exceptions.*;
import com.csi.daserver.utils.MsgPool;
import com.csi.dcserver.crypto.Crypto;


import org.xml.sax.InputSource;

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

import
org.apache.avalon.framework.logger.ConsoleLogger;
import org.apache.avalon.framework.logger.Logger;


public class ImageDownload extends HttpServlet {

        Logger log = null;
        ....
        public void doGet(HttpServletRequest req,
HttpServletResponse resp) throws ServletException,
IOException {
                
                        ...
                
                //got the binary data in tiff format from database
and put the binary data in byte array bt
                Byte[] bt = (byte[]) v.elementAt(0);            
        
                sendPDFBinaryResponse(resp, req, bt,
"application/pdf");
                return;
      }
        }
        
        //
        private void
sendPDFBinaryResponse(HttpServletResponse
res,HttpServletRequest req, byte[]
bt,StringsContTypeHeader) throws IOException,
ServletException{
                                
        
        
                if(sContTypeHeader=="application/pdf"){

                        if (log == null) {
                        log = new
ConsoleLogger(ConsoleLogger.LEVEL_WARN);
                        MessageHandler.setScreenLogger(log);
                 }

                
                                renderFO(new InputSource(new
ByteArrayInputStream(bt)), res);

        
                }

         }
  

  
  
  
    public void renderFO(InputSource foFile,
HttpServletResponse response) throws ServletException
{
        try {
            ByteArrayOutputStream out = new
ByteArrayOutputStream();

           
response.setContentType("application/pdf");

            Driver driver = new Driver(foFile, out);
            driver.setLogger(log);
            driver.setRenderer(Driver.RENDER_PDF);    
     
            driver.run();

            byte[] content = out.toByteArray();


            response.setContentLength(content.length);
            response.getOutputStream().write(content);
            response.getOutputStream().flush();



        } catch (Exception ex) {
            throw new ServletException(ex);
        }
    }

...

}


****************
This is the exact error I got:

org.xml.sax.SAXParseException: Content is not allowed
in prolog.
        at
org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1172)
        at org.apache.fop.apps.Driver.render(Driver.java:498)
        at org.apache.fop.apps.Driver.run(Driver.java:565)



__________________________________
Do you Yahoo!?
Yahoo! Small Business $15K Web Design Giveaway 
http://promotions.yahoo.com/design_giveaway/

Reply via email to