溫馨提示:您的每一次轉載,體現了我寫此文的意義!!!煩請您在轉載時注明出處http://www.aygfsteel.com/sxyx2008/謝謝合作!!!

          雪山飛鵠

          溫馨提示:您的每一次轉載,體現了我寫此文的意義!!!煩請您在轉載時注明出處http://www.aygfsteel.com/sxyx2008/謝謝合作!!!

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            215 Posts :: 1 Stories :: 674 Comments :: 0 Trackbacks

          環境需求:
                          iText-2.1.7.jar
                          iTextAsian.jar
          示例代碼:

          package com.iText.create;

          import java.awt.Color;
          import java.io.File;
          import java.io.FileOutputStream;
          import java.io.IOException;

          import com.lowagie.text.Cell;
          import com.lowagie.text.Document;
          import com.lowagie.text.DocumentException;
          import com.lowagie.text.Element;
          import com.lowagie.text.Font;
          import com.lowagie.text.HeaderFooter;
          import com.lowagie.text.Image;
          import com.lowagie.text.PageSize;
          import com.lowagie.text.Paragraph;
          import com.lowagie.text.Phrase;
          import com.lowagie.text.Table;
          import com.lowagie.text.pdf.BaseFont;
          import com.lowagie.text.pdf.PdfWriter;

          /**
           * 功能描述:使用Itext組件創建pdf文檔<br>
           * 創建時間:2010-07-01
           * 
          @author sxyx2008
           *
           
          */

          public class CreatePdf {

              
          public CreatePdf() throws Exception{
                  
                  
          //創建一個文檔對象紙張大小為A4
                  Document doc=new Document(PageSize.A4,50,50,50,50);
                  
          //設置要輸出到磁盤上的文件名稱
                  PdfWriter writer=PdfWriter.getInstance(doc,new FileOutputStream(new File("徐熙媛.pdf")));
                  
          //設置作者信息
                  doc.addAuthor("sxyx2008");
                  
          //設置文檔創建日期
                  doc.addCreationDate();
                  
          //設置標題
                  doc.addTitle("iText測試");
                  
          //設置值主題
                  doc.addSubject("iText");
                  
                  
          //構建頁腳
                  HeaderFooter footer=new HeaderFooter(new Phrase(), true);
                  
          //設置頁腳是否有邊框
                  
          //0表示無
                  
          //1上邊框
                  
          //2下邊框
                  
          //3上下邊框都有 默認都有
                  
          //設置頁腳是否有邊框
                  footer.setBorder(0);
                  
          //footer.setBorder(1);
                  
          //footer.setBorder(2);
                  
          //footer.setBorder(3);
                  
          //設置頁腳的對齊方式
                  footer.setAlignment(Element.ALIGN_CENTER);
                  
          //將頁腳添加到文檔中
                  doc.setFooter(footer);
                  
                  
          //打開文檔開始寫內容
                  doc.open();
                  
          //Paragraph par1=new Paragraph("Hello,Welcome You");
                  
          //Paragraph par2=new Paragraph("你好,中文測試",ChineseFont());

                  
          /*par1.setAlignment(Element.ALIGN_CENTER);
                  doc.add(par1);
          */

                  
          //par2.setAlignment(Element.ALIGN_CENTER);
                  
          //doc.add(par2);
                  
                  
          //構建一段落
                  Paragraph par3=new Paragraph("客戶信息表",ChineseFont());
                  
          //設置局中對齊
                  par3.setAlignment(Element.ALIGN_CENTER);
                  
          //添加到文檔
                  doc.add(par3);
                  
                  
          //創建一個四列的表格
                  Table table=new Table(4);
                  
          //設置邊框
                  table.setBorder(1);
                  
                  
          //創建表頭
                  
                  Cell cell1
          =new Cell(new Phrase("編號",ChineseFont()));
                  cell1.setHorizontalAlignment(Element.ALIGN_CENTER);
                  cell1.setVerticalAlignment(Element.ALIGN_CENTER);
                  cell1.setHeader(
          true);
                  cell1.setBackgroundColor(Color.RED);
                  
                  
                  Cell cell2
          =new Cell(new Phrase("姓名",ChineseFont()));
                  cell2.setHorizontalAlignment(Element.ALIGN_CENTER);
                  cell2.setVerticalAlignment(Element.ALIGN_CENTER);
                  cell2.setHeader(
          true);
                  cell2.setBackgroundColor(Color.RED);
                  
                  Cell cell3
          =new Cell(new Phrase("性別",ChineseFont()));
                  cell3.setHorizontalAlignment(Element.ALIGN_CENTER);
                  cell3.setVerticalAlignment(Element.ALIGN_CENTER);
                  cell3.setHeader(
          true);
                  cell3.setBackgroundColor(Color.RED);
                  
                  Cell cell4
          =new Cell(new Phrase("備注",ChineseFont()));
                  cell4.setHorizontalAlignment(Element.ALIGN_CENTER);
                  cell4.setVerticalAlignment(Element.ALIGN_CENTER);
                  cell4.setHeader(
          true);
                  cell4.setBackgroundColor(Color.RED);
                  
                  
                  table.addCell(cell1);
                  table.addCell(cell2);
                  table.addCell(cell3);
                  table.addCell(cell4);
                  
          //添加此代碼后每頁都會顯示表頭
                  table.endHeaders();
                  
                  
                  
          //循環向表格中添加100條記錄 100行4列的表格
                  
                  
          //以下代碼的作用是創建100行數據,其中每行有四列,列依次為 編號 姓名 性別 備注
                  for (int i = 1; i <=100; i++{
                      
                      
          //設置編號單元格
                      Cell cell11=new Cell(i+"");
                      
          //設置姓名單元格
                      Cell cell22=new Cell(new Phrase("徐熙媛",ChineseFont()));
                      
          //設置性別單元格
                      Cell cell33=new Cell(new Phrase("",ChineseFont()));
                      
          //設置備注單元格
                      Cell cell44=new Cell(new Phrase("好姑娘",ChineseFont()));
                      
                      
          //單元格水平對齊方式
                      cell11.setHorizontalAlignment(Element.ALIGN_CENTER);
                      
          //單元格垂直對齊方式
                      cell11.setVerticalAlignment(Element.ALIGN_CENTER);
                      
                      cell22.setHorizontalAlignment(Element.ALIGN_CENTER);
                      cell22.setVerticalAlignment(Element.ALIGN_CENTER);
                      
                      cell33.setHorizontalAlignment(Element.ALIGN_CENTER);
                      cell33.setVerticalAlignment(Element.ALIGN_CENTER);
                      
                      cell44.setHorizontalAlignment(Element.ALIGN_CENTER);
                      cell44.setVerticalAlignment(Element.ALIGN_CENTER);
                      
                      
                      table.addCell(cell11);
                      table.addCell(cell22);
                      table.addCell(cell33);
                      table.addCell(cell44);
                      
                  }

                  
                  
          //將表格添加到新的文檔
                  doc.add(table);
                  
          //創建新的一頁
                  doc.newPage();
                  
          //添加圖片
                  Image image=Image.getInstance("D:\\Program Files\\myeclipseworkspace\\6.5\\iText\\src\\5.jpg");
                  
          //添加到文檔
                  doc.add(image);
                  
          //設置對象方式
                  image.setAlignment(Element.ALIGN_CENTER);
                  
                  doc.close();
                  writer.close();
              }

              
              
          //pdf文檔中文字符處理
              public static Font ChineseFont()
              
          {
                  BaseFont baseFont
          =null;
                  
          try {
                      baseFont
          =BaseFont.createFont("STSong-Light","UniGB-UCS2-H"true);
                  }
           catch (DocumentException e) {
                      e.printStackTrace();
                  }
           catch (IOException e) {
                      e.printStackTrace();
                  }

                  Font chineseFont
          =new Font(baseFont,8,Font.NORMAL,Color.BLUE);
                  
          return chineseFont;
              }

              
              
              
          public static void main(String[] args) {
                  
          try {
                      
          new CreatePdf();
                  }
           catch (Exception e) {
                      e.printStackTrace();
                  }

              }


          }

          效果圖:
          posted on 2010-07-01 11:06 雪山飛鵠 閱讀(4021) 評論(2)  編輯  收藏 所屬分類: javase

          Feedback

          # re: 輕松使用IText組件制作pdf報表 2010-07-01 13:10 @joe
          太雷人了 你這數據。  回復  更多評論
            

          # re: 輕松使用IText組件制作pdf報表 2010-07-01 18:25 雪山飛鵠
          @@joe
          呵呵
          瞎胡鬧了么  回復  更多評論
            

          主站蜘蛛池模板: 日土县| 湘潭县| 利川市| 平凉市| 博爱县| 静乐县| 江都市| 社旗县| 宁晋县| 松桃| 永川市| 金坛市| 澄迈县| 仁寿县| 屯门区| 安陆市| 武安市| 准格尔旗| 九江县| 湛江市| 韶关市| 开平市| 繁昌县| 遂溪县| 福清市| 农安县| 保定市| 冀州市| 井陉县| 嘉义市| 石嘴山市| 大竹县| 定襄县| 德兴市| 阳城县| 荆州市| 临夏县| 涟水县| 辽源市| 郑州市| 和政县|