java.io.IOException: The document has no pages

164 views
Skip to first unread message

Ritesh Mehandiratta via StackOverflow

unread,
Jun 29, 2012, 3:48:46 AM6/29/12
to google-appengin...@googlegroups.com

Hi i am tring to create a pdf with name content Hello World and getting the error java.io.IOException: The document has no pages.

here is the code for my servlet

package org.ritesh;

import java.io.ByteArrayOutputStream;
import java.io.IOException;

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

import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Paragraph;
import com.lowagie.text.pdf.PdfWriter;

@SuppressWarnings("serial")
public class PdfmakeServlet extends HttpServlet {
    public void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws IOException {
        resp.setContentType("application/pdf");


        Document document =new Document();
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            try {
                PdfWriter.getInstance(document, baos);
            } catch (DocumentException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            document.open();

                try {
                    document.add(new Paragraph("Hello WOrld "));
                } catch (DocumentException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }



            resp.setContentLength(baos.size());

            // write ByteArrayOutputStream to ServletOutputStream
            ServletOutputStream out = resp.getOutputStream();
            baos.writeTo(out);

            out.flush();
            out.close();
            document.close();
    }
}

its an GAE app so i added a compatible library of iText but getting this error

java.io.IOException: The document has no pages. at com.lowagie.text.pdf.PdfPages.writePageTree(Unknown Source) at com.lowagie.text.pdf.PdfWriter.close(Unknown Source) at com.lowagie.text.pdf.PdfDocument.close(Unknown Source) at com.lowagie.text.Document.close(Unknown Source) at org.ritesh.PdfmakeServlet.doGet(PdfmakeServlet.java:48) at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166) at com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:35) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:60) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:122) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.appengine.tools.development.BackendServersFilter.doFilter(BackendServersFilter.java:97) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) at com.google.appengine.tools.development.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:78) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:369) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.Server.handle(Server.java:326) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)

i am new to iText can any one please help how to remove this error??



Please DO NOT REPLY directly to this email but go to StackOverflow:
http://stackoverflow.com/questions/11257946/java-io-ioexception-the-document-has-no-pages

Pier Luigi via StackOverflow

unread,
Jun 29, 2012, 4:08:47 AM6/29/12
to google-appengin...@googlegroups.com

I suggest to assign the ByeArrayOutputStream to the servlet OutputStream only after the document is closed. Before the document.close() instruction the ByteArrayOutputStream has 0 size.



Please DO NOT REPLY directly to this email but go to StackOverflow:
http://stackoverflow.com/questions/11257946/java-io-ioexception-the-document-has-no-pages/11258197#11258197

Ritesh Mehandiratta via StackOverflow

unread,
Jun 29, 2012, 6:28:58 AM6/29/12
to google-appengin...@googlegroups.com

Ritesh Mehandiratta via StackOverflow

unread,
Jun 29, 2012, 6:33:53 AM6/29/12
to google-appengin...@googlegroups.com

I am tring to create a PDF with name content Hello World and getting the error java.io.IOException: The document has no pages.

Here is the code for my servlet:

it's an GAE app so I added a compatible library of iText but getting this error

I am new to iText can any one please help how to remove this error?

Reply all
Reply to author
Forward
0 new messages