Tomcat 下使用itext生成报表

2016-02-19 15:34 11 1 收藏

给自己一点时间接受自己,爱自己,趁着下午茶的时间来学习图老师推荐的Tomcat 下使用itext生成报表,过去的都会过去,迎接崭新的开始,释放更美好的自己。

【 tulaoshi.com - 编程语言 】

  1.Tomcat的安装不描述.现在假如Tomcat 安装目录为C:Tomcat 5.0,新建C: /Tomcat 5.0 /webapps  /pdfservlet目录.

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

  安装JDK  安装目录C:j2sdk1.4.2_09  去http://www.lowagie.com/iText/download.html下载itext1.3.0.jar,后解压 缩,将itext-1.3.0.jar 放到C: Tomcat 5.0 webapps  myServlets WEB-INF  lib下(当然还有一些必须的包如servlet.jar) 和 C: j2sdk1.4.2_09  lib下.并将C:/j2sdk1.4.2_09/  lib/  itext-1.3.0.jar加到CLASSPATH中.确保能正确编译.(我也是一名JAVA初学者,我想起码的JAVA环境配置要会)

  2.下面就是itext 的例子,我在网上查过关于ITEXT的贴子,大部份都是转贴,一个贴子被一帮所谓的JAVA爱好者转了又转,难得出一份原创贴,可能那些JAVA高手有点低估我们初学者的水平,来个Helloworld字符串加到PDF中就算过了,TMD那个在实际中顶个叉用.我说这些话也只是希望那些精通JAVA的人能对我们这些初学负一点责任,写一点好贴,给我们参考一下.废话不多讲,下面是代码.:

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)
import java.io.IOException;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Paragraph;
import com.lowagie.text.html.HtmlWriter;
import com.lowagie.text.pdf.PdfWriter;
import com.lowagie.text.rtf.RtfWriter;
import com.lowagie.text.Element;
import com.lowagie.text.PageSize;
import com.lowagie.text.pdf.PdfPTable;
/**
 * Hello World example as a Servlet.
 *
 * @author blowagie
 */
public class HelloWorldServlet extends HttpServlet { 
   /**
   * Returns a PDF, RTF or HTML document.
   *
   * @see javax.servlet.http.HttpServlet#doGet(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
   */
   public void doGet (HttpServletRequest request, HttpServletResponse response)
   throws IOException, ServletException {
      System.out.println("document.add(BigTable)");
  // step1
  Document document = new Document(PageSize.A4.rotate(), 10, 10, 10, 10); //定义纸张类型及方向,页边距
     
     // step 1
     
     try {
       // step 2: we set the ContentType and create an instance of the corresponding Writer
         response.setContentType("application/pdf");
         PdfWriter.getInstance(document, response.getOutputStream());
   // step3
   document.open();
   // step4 定义表格填充内容
   String[] bogusData = { "M0065920", "SL", "FR86000P", "PCGOLD",
    "119000", "96 06", "2001-08-13", "4350", "6011648299",
    "FLFLMTGP", "153", "119000.00" };
   int NumColumns = 12; //定义表格列数
PdfPTable datatable = new PdfPTable(NumColumns); //创建新表.
   int headerwidths[] = { 9, 4, 8, 10, 8, 11, 9, 7, 9, 10, 4, 10 }; // percentage 定义表格头宽度
   datatable.setWidths(headerwidths);
   datatable.setWidthPercentage(100); // percentage
   datatable.getDefaultCell().setPadding(3);
   datatable.getDefaultCell().setBorderWidth(2);
   datatable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER);
   //以下是填充表头
   datatable.addCell("Clock #");
   datatable.addCell("Trans Type");
   datatable.addCell("Cusip");
   datatable.addCell("Long Name");
   datatable.addCell("Quantity");
   datatable.addCell("Fraction Price");
   datatable.addCell("Settle Date");
   datatable.addCell("Portfolio");
   datatable.addCell("ADP Number");
   datatable.addCell("Account ID");
   datatable.addCell("Reg Rep ID");
   datatable.addCell("Amt To Go ");
datatable.setHeaderRows(1); // this is the end of the table header
datatable.getDefaultCell().setBorderWidth(1);
   for (int i = 1; i 750; i++) {
   if (i % 2 == 1) {
    datatable.getDefaultCell().setGrayFill(0.9f);
   }
   for (int x = 0; x NumColumns; x++) {
    datatable.addCell(bogusData[x]);
   }
   if (i % 2 == 1) {
    datatable.getDefaultCell().setGrayFill(0.0f);
   }
   }
   document.add(datatable); //加载新表
     }
     catch(DocumentException de) {
       de.printStackTrace();
       System.err.println("document: " + de.getMessage());
     }
     
     // step 5: we close the document (the outputstream is also closed internally)
     document.close();
   }
}

  正确编译它,我试过了没问题,我itext  REV.为1.3.0 放到C:  Tomcat 5.0  webapps  pdfservlet  WEB-INF  classes

  2.由于是Servlet 我们创建一个WEB.XML 放到C: Tomcat 5.0 webapps  pdfservlet  WEB-INF下

  

?xml version="1.0" encoding="ISO-8859-1"?
!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
"http://java.sun.com/j2ee/dtds/web-app_2.2.dtd"
web-app
servlet
servlet-name
HelloWorldServlet
/servlet-name
servlet-class
HelloWorldServlet
/servlet-class
/servlet
servlet-mapping
servlet-nameHelloWorldServlet/servlet-name
url-pattern/HelloWorldServlet/url-pattern
/servlet-mapping
/web-app

  3.重新启动TOMCAT

  http://IP地址:8080/pdfservlet/HelloWorldServlet

  如果顺利的话你可以看到很漂亮的PDF报表

来源:https://www.tulaoshi.com/n/20160219/1609906.html

延伸阅读
标签: Web开发
我们知道,需要运行shtml,必须在web服务器上配置好ssi。 下面是ssi在tomcat5.*上的配置方法: 打开tomcat配置文件:conf/web.xml: 1、去掉下面servlet前的注释 /* servlet servlet-namessi/servlet-name servlet-class org.apache.catalina.ssi.SSIServlet /servlet-class init-param param-namebuffered/param-name param-value1/param-...
标签: Web开发
使用UTF-8其實對於JSP來說 對於在網頁常常會需要輸入或輸出多國語文上 算是一個比較方便的編碼 JSP的轉碼設定其實也不難..只要記得加上去即可 不然JSP內定的編碼可不是UTF-8喔 不過可惜的是MySQL至今尚沒有完整支援UTF-8 但是可別這樣就灰心囉 因為我門可以透過MySQL提供的Connection/J的JDBC介面來存...
标签: Web开发
项目兼容需要生成一系列的XML文件,总结了下XML文件的生成基本方式 XmlTextWriter w = new XmlTextWriter("C:XML文件名.xml", Encoding.Unicode); //Encoding.Unicode为生成XML文件的编码格式,到时候合输出:?xml version="1.0" encoding="utf-16"? w.Formatting = Formatting.Indented; // 这个比较重要,这个属性说明xml文件里面的内容是...
案例说明 此案例为 使用Fireworks 8 制作网页效果图 位图工具 的姊妹篇,前面的案例地址可以点击这里。前面已经给大家介绍了网页效果图的制作,这里要介绍的内容是如何把效果图生成网页。这也是网站制作中最重要的一部分。主要介绍的Fireworks如何和Dreamweaver进行协同工作。本例主要分为4个部分,希望大家能够通过这个例子得到一...
Private Sub Command1_Click(Index As Integer) With cr1 'cr1为报表控件 .PrinterDriver = Printer.DeviceName .DiscardSavedData = True '------------------------------------------------- '连接方式一 .Connect = "DSN = drugdb;UID =sa;PWD =;" '连接方式二 .Connect = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;I...

经验教程

370

收藏

32
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部