On Thu, 2004-04-01 at 14:30, Jerry wrote:
> 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.
It is not clear from your example whether your data is usable by
FOP.
FOP is designed to process XML files, specifically XSL-FO or
Formatting objects.
You state on your message and in comments that the binary data is
in a TIFF format. You move this data around, eventualy passing it
to the FOP Driver object. I don't think this is at all reasonable
as a TIFF object is definitely not going to be accepted by the SAX
parser used in FOP.
You need to read the FOP examples again.
> 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/
--
John Austin <[EMAIL PROTECTED]>