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/