java技術研究

          統計

          留言簿(3)

          閱讀排行榜

          評論排行榜

          (轉)Java操作PDF文件(iText)

          (轉)Java操作PDF文件(iText)
          2009-03-12 01:33:18
          標簽:PDF Java 休閑 iText 文件
          原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://xiaoduan.blog.51cto.com/502137/137930
          上次我們用jacob來操作Microsoft Word,今天我們來操作PDF文檔。
          雖然jacob中也有關于PDF的方法,但是過于復雜。iText是一個開源的PDF工具,小巧而又便捷。
          官方網站是:http://www.lowagie.com/iText/
          官方的解釋:iText is a library that allows you to generate PDF files . the fly
          最新版本為:2.1.5
          下載地址是:http://nchc.dl.sourceforge.net/sourceforge/itext/iText-2.1.5.jar
           
          我的開發環境:JDK1.6+MyEclipse7+Tomcat5.5.27
          首先在MyEclipse中新建一個項目,名稱為iText。
          新建一個Class(類)HelloWorld.java ,Package(包)為com.test ,代碼如下:
          package com.test;    

          import java.io.FileOutputStream;    
          import java.io.IOException;    

          import com.lowagie.text.Document;    
          import com.lowagie.text.DocumentException;    
          import com.lowagie.text.Paragraph;    
          import com.lowagie.text.pdf.PdfWriter;    

          public class HelloWorld {    
                  /**    
                   * 生成一個簡單的PDF文件:HelloWorld.pdf    
                   *    
                   * 作者:小段    
                   */    
                  public static void main(String[] args) {    

                          System.out.println("Hello World");    
                          //第一步:創建一個document對象。    
                          Document document = new Document();    
                          try {    
                                  // 第二步:    
                                  // 創建一個PdfWriter實例,    
                                  // 將文件輸出流指向一個文件。    
                                  PdfWriter.getInstance(document,new FileOutputStream("C:\\HelloWorld.pdf"));    

                                  // 第三步:打開文檔。    
                                  document.open();    
                                  // 第四步:在文檔中增加一個段落。    
                                  document.add(new Paragraph("Hello World"+","+"Hello iText"+","+"Hello xDuan"));    
                          } catch (DocumentException de) {    
                                  System.err.println(de.getMessage());    
                          } catch (IOException ioe) {    
                                  System.err.println(ioe.getMessage());    
                          }    
                          // 第五步:關閉文檔。    
                          document.close();    
                          // 檢驗程序是否正常運行到這里。    
                          System.out.println("快去看看吧");    
                  }    

          運行后,控制臺輸出語句:Hello World     快去看看吧
          Snap2
           
          進入C盤根目錄,發現生成的HelloWorld.pdf文件,打開文件,看看內容是否正確。
          Snap4
          Snap5
           
          Java操作PDF文件測試成功。但是現在我們項目沒有任何實際意義。所以我們要添加數據庫。
          數據庫為Oracle10g,用戶名sys1,密碼abc,表:emp
          Snap6
           
          表中數據很多,我在這里就不一一列舉了。
          Snap7
           
          新建一個Class(類)DB.java ,代碼如下:
          package com.test;    

          import java.io.FileOutputStream;    
          import java.io.IOException;    
          import java.sql.Connection;    
          import java.sql.DriverManager;    
          import java.sql.ResultSet;    
          import java.sql.Statement;    

          import com.lowagie.text.Anchor;    
          import com.lowagie.text.Chunk;    
          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;    

          public class DB {    
                  /**    
                   * 利用iText,將數據庫表中的數據寫入PDF文件中。    
                   *    
                   * 作者:小段    
                   */    
                  public static void main(String[] args) throws Exception{    

                          System.out.println("Hello Oracle");    
                          // 第一步:創建一個document對象。    
                          Document document = new Document();    
                          try {    
                                  // 第二步:    
                                  // 創建一個PdfWriter實例,    
                                  // 將文件輸出流指向一個文件。    
                                  PdfWriter pdf = PdfWriter.getInstance(document,new FileOutputStream("C:\\DB.pdf"));    
                                  // 第三步:打開文檔。    
                                  document.open();    
                                  // 第四步:創建數據庫連接        。                 
                                  Class.forName("oracle.jdbc.driver.OracleDriver");    
                                  Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "sys1", "abc");    
                                  Statement stmt = conn.createStatement();    
                                  ResultSet rs = stmt.executeQuery("select * from emp");    

                                  while(rs.next()){        //循環取得所有數據    
                                          String s="";    
                                          for(int i=1;i<=8;i++){    

                                                  s+=rs.getObject(i)==null?"":rs.getObject(i).toString()+"\t";                                 
                                          }    
                                          document.add(new Paragraph(s));    
                                  }    
                                  document.add(new Paragraph("Hello World"+"     fdgdsf "+"Hello xDuan"));    

                          } catch (DocumentException de) {    
                                  System.err.println(de.getMessage());    
                          } catch (IOException ioe) {    
                                  System.err.println(ioe.getMessage());    
                          }    

                          // 第五步:關閉文檔。    
                          document.close();    
                          System.out.println("快去看看吧");    
                  }    

          運行后,控制臺顯示信息:Hello Oracle     快去看看吧
          Snap8
           
          進入C盤根目錄,發現生成了DB.pdf文件,打開看看內容是否正確。
          Snap9
          Snap10
           
          成功!這是Java利用iText操作PDF文件,下次我們用另外一個工具BFO,呵呵,不是UFO。

          本文出自 “小段” 博客,請務必保留此出處http://xiaoduan.blog.51cto.com/502137/137930

          posted on 2012-06-30 18:02 小秦 閱讀(384) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 永寿县| 阿坝县| 晋宁县| 内黄县| 大方县| 吉隆县| 满洲里市| 泽库县| 紫阳县| 璧山县| 辛集市| 宁海县| 博罗县| 米泉市| 刚察县| 贵溪市| 大悟县| 南江县| 金堂县| 德清县| 蛟河市| 宜川县| 廉江市| 和平县| 喀喇沁旗| 浮梁县| 陈巴尔虎旗| 息烽县| 巴林右旗| 两当县| 黑龙江省| 隆德县| 巨野县| 同心县| 通化市| 蒲江县| 革吉县| 迁西县| 通州区| 偏关县| 阿巴嘎旗|