Java Mailing List Archive

http://www.junlu.com/

Home » Home (12/2007) » iText »

[iText-questions] JFreeChart problem

Michael Clayton

2007-06-25


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.
    *@(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
iText-questions@(protected)
https://lists.sourceforge.net/lists/listinfo/itext-questions
Buy the iText book: http://itext.ugent.be/itext-in-action/
©2008 junlu.com - Jax Systems, LLC, U.S.A.