上次我們用jacob來操作Microsoft Word,今天我們來操作PDF文檔。
雖然jacob中也有關于PDF的方法,但是過于復雜。iText是一個開源的PDF工具,小巧而又便捷。
官方的解釋:iText is a library that allows you to generate PDF files . the fly
最新版本為:2.1.5
我的開發環境: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 快去看看吧
進入C盤根目錄,發現生成的HelloWorld.pdf文件,打開文件,看看內容是否正確。
Java操作PDF文件測試成功。但是現在我們項目沒有任何實際意義。所以我們要添加數據庫。
數據庫為Oracle10g,用戶名sys1,密碼abc,表:emp
表中數據很多,我在這里就不一一列舉了。
新建一個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 快去看看吧
進入C盤根目錄,發現生成了DB.pdf文件,打開看看內容是否正確。
成功!這是Java利用iText操作PDF文件,下次我們用另外一個工具BFO,呵呵,不是UFO。
本文出自 “小段” 博客,請務必保留此出處http://xiaoduan.blog.51cto.com/502137/137930