许多企业系统 需要通过java动态的生成pdf文件,itext是一个开源的PDF工具,能够帮助我们便捷的生成PDF文件。
开发环境:JDK1.6以上,eclipse或者是Intellij idea,jar包itextpdf-5.4.2.jar
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("E:\\HelloWorld.pdf"));
// 第三步:打开文档。
document.open();
// 第四步:在文档中增加一个段落。
document.add(new Paragraph("Hello World");
} catch (DocumentException de) {
System.err.println(de.getMessage());
} catch (IOException ioe) {
System.err.println(ioe.getMessage());
}
// 第五步:关闭文档。
document.close();
// 检验程序是否正常运行到这里。
System.out.println("快去看看吧");
}
}
控制台显示打印结果,到E盘下可看到生成的PDF文件
我们来试一试添加数据库数据的测试,直接代码:
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("快去看看吧");
}
}