首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > PowerDesigner >

java运用IText生成表格到PDF中

2012-06-27 
java使用IText生成表格到PDF中?1.生成pdf的表格package com.me.testimport java.awt.Colorimport java.i

java使用IText生成表格到PDF中

?

1.生成pdf的表格

package com.me.test;import java.awt.Color;import java.io.FileOutputStream;import com.lowagie.text.Cell;import com.lowagie.text.Document;import com.lowagie.text.Element;import com.lowagie.text.Font;import com.lowagie.text.PageSize;import com.lowagie.text.Paragraph;import com.lowagie.text.Table;import com.lowagie.text.pdf.BaseFont;import com.lowagie.text.pdf.PdfWriter;/** * 生成表格到硬盘 *  * @author admin *  */public class ITextTest {public void getTable(){try {Document document = new Document(PageSize.A4, 20, 20, 20, 20);PdfWriter writer = PdfWriter.getInstance(document,new FileOutputStream("f:/IText/table.pdf"));document.open();BaseFont bfChinese;bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H",false);Font fontChinese = new Font(bfChinese, 9, Font.BOLD, Color.black);Table t = new Table(12, 2);// t.setBorderColor(new Color(220, 255, 100));int width[] = { 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, };t.setWidths(width);t.setWidth(100); // 占页面宽度 %t.setPadding(1);t.setSpacing(0);t.setBorderWidth(2);Cell c1 = new Cell("header1");t.addCell(c1);c1 = new Cell("Header2");t.addCell(c1);c1 = new Cell("Header3");t.addCell(c1);c1 = new Cell("Header4");t.addCell(c1);c1 = new Cell("Header5");t.addCell(c1);c1 = new Cell("Header6");t.addCell(c1);c1 = new Cell("Header7");t.addCell(c1);c1 = new Cell("Header8");t.addCell(c1);c1 = new Cell("Header9");t.addCell(c1);c1 = new Cell("Header10");t.addCell(c1);c1 = new Cell("Header11");t.addCell(c1);c1 = new Cell("Header12");t.addCell(c1);int k = 0;while (k < 3) {for (int q = 0; q < 12; q++) {Paragraph par = new Paragraph(k + "-" + q, fontChinese);c1 = new Cell(par);c1.setHorizontalAlignment(Element.ALIGN_CENTER);t.addCell(c1);}k++;}for (int i = 0; i < 24; i++) {String num = Integer.toString(i);c1.setHorizontalAlignment(Element.ALIGN_CENTER);c1 = new Cell(num);c1.setColspan(2);c1.setRowspan(1);t.addCell(c1);}c1 = new Cell("26");t.addCell(c1);document.add(t);// 创建一个新页面document.newPage();document.add(t);document.close();} catch (Exception e2) {e2.printStackTrace();}}}

?2.将网页中的信息,用pdf格式文件弹出

package com.me.test;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.OutputStream; import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse; import com.itextpdf.text.Document;import com.itextpdf.text.DocumentException;import com.itextpdf.text.Paragraph;import com.itextpdf.text.pdf.PdfWriter;/** * 在网页上获取信息,查看pdf格式文件 * @author admin * */public class PdfServlet extends HttpServlet {     /**     * @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response)     */    protected void service(HttpServletRequest request, HttpServletResponse response)        throws ServletException, IOException {        try {            // Get the text that will be added to the PDF            String text = request.getParameter("text");            if (text == null || text.trim().length() == 0) {                 text = "You didn't enter any text.";            }            // step 1            Document document = new Document();            // step 2            ByteArrayOutputStream baos = new ByteArrayOutputStream();            PdfWriter.getInstance(document, baos);            // step 3            document.open();            // step 4            document.add(new Paragraph(String.format(                "You have submitted the following text using the %s method:",                request.getMethod())));            document.add(new Paragraph(text));            // step 5            document.close();             // setting some response headers            response.setHeader("Expires", "0");            response.setHeader("Cache-Control",                "must-revalidate, post-check=0, pre-check=0");            response.setHeader("Pragma", "public");            // setting the content type            response.setContentType("application/pdf");            // the contentlength            response.setContentLength(baos.size());            // write ByteArrayOutputStream to the ServletOutputStream            OutputStream os = response.getOutputStream();            baos.writeTo(os);            os.flush();            os.close();        }        catch(DocumentException e) {            throw new IOException(e.getMessage());        }    }     /**     * Serial version UID.     */    private static final long serialVersionUID = 6067021675155015602L; }

?3.在网页上直接以pdf的形式显示

package com.me.test;import java.io.IOException;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.pdf.PdfWriter;import com.lowagie.text.Element;import com.lowagie.text.PageSize;import com.lowagie.text.pdf.PdfPTable;/** * 直接在网页中生成PDF格式 查看 *//** * Hello World example as a Servlet. * * @author blowagie */public class HelloWorldServlet extends HttpServlet {      /** *  */private static final long serialVersionUID = 3710911016238241119L;/**     * 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();    }}

?

热点排行