Hi!

When  use the JFreeChart sample in the iText book, it works fine as a  
stand-alone app with a main method. However, I cannot get it to work  
in a JavaBean. It seems the document does not close =
document.close().

Im using eclipse and tomcat seems  to just hang.  
org.apache.catalina.startup.Bootstrap window never closes, as it  
usually does.

here is the code I tried with a servlet:

package mybeans;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import java.awt.Graphics2D;
import java.awt.geom.Rectangle2D;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;

import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Rectangle;
import com.lowagie.text.pdf.DefaultFontMapper;
import com.lowagie.text.pdf.PdfContentByte;
import com.lowagie.text.pdf.PdfTemplate;
import com.lowagie.text.pdf.PdfWriter;

/**
  * Servlet implementation class for Servlet: ReportServlet
  *
  */
  public class ReportServlet extends javax.servlet.http.HttpServlet  
implements javax.servlet.Servlet {
     /* (non-Java-doc)
         * @see javax.servlet.http.HttpServlet#HttpServlet()
         */
         publicvoid doGet (HttpServletRequest request, HttpServletResponse  
response)
            throws IOException, ServletException {
                
                 ReuReportProvider reportBean = new ReuReportProvider();
                 int freshman = reportBean.getFreshmanCount();
                 int sophomore = reportBean.getSophomoreCount();
                 int junior = reportBean.getJuniorCount();
                 int senior = reportBean.getSeniorCount();
                
                 //JFreeChart myChart = reportBean.getPieChart(freshman, 
sophomore,  
junior, senior);
                 reportBean.convertToPdf(getPieChart(freshman, sophomore, 
junior,  
senior), 400, 500, "standing");
                
         }
        
         publicvoid convertToPdf(JFreeChart chart, int width, int height,  
String filename) {
                
                        // step 1
                Document document = new Document(new Rectangle(width, height));
                try {
                        // step 2
                        PdfWriter writer;
                                writer = PdfWriter.getInstance(document, new 
FileOutputStream 
(filename));
                                System.out.println("getting writer");
                                // step 3
                        document.open();
                                System.out.println("Document open");
                        // step 4
                        PdfContentByte cb = writer.getDirectContent();
                        PdfTemplate tp = cb.createTemplate(width, height);
                        Graphics2D g2d = tp.createGraphics(width, height, new  
DefaultFontMapper());
                        Rectangle2D r2d = new Rectangle2D.Double(0, 0, width, 
height);
                        chart.draw(g2d, r2d);
                        g2d.dispose();
                        cb.addTemplate(tp, 0, 0);
                        
                }
                catch(DocumentException de) {
                        de.printStackTrace();
                        
                }
                catch (FileNotFoundException e) {
                        e.printStackTrace();
                }
                // step 5
                
                System.out.println("Closing document");
                 document.close();
            }
        

        
            /**
             *Getsanexamplepiechart.
             [EMAIL PROTECTED]
             */

        
            public JFreeChart getPieChart(int freshman, int sophomore, int  
junior, int senior) {
                DefaultPieDataset dataset = new DefaultPieDataset();
                dataset.setValue("Freshman", freshman);
                dataset.setValue("Sophomore", sophomore);
                dataset.setValue("Junior", junior);
                dataset.setValue("Senior", senior);
                //dataset.setValue("5th Yr Sen.", supersenior);
                System.out.println("I have the data set");
                
                
                //dataset.setValue("tutorial", 30);
                return ChartFactory.createPieChart("Gender  
Report",dataset,true,true,false);
                
                
        
            }
        
        
        
        
        public ReportServlet() {
                super();
        }                               
}

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
iText-questions mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/itext-questions
Buy the iText book: http://itext.ugent.be/itext-in-action/

Reply via email to