Java操作PDF文件(iText)
2009-03-12 01:33
543 查看
上次我们用jacob来操作Microsoft Word,今天我们来操作PDF文档。
虽然jacob中也有关于PDF的方法,但是过于复杂。iText是一个开源的PDF工具,小巧而又便捷。
![](http://www.lowagie.com/iText/images/logo.gif)
官方网站是: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 快去看看吧
![](http://xiaoduan.blog.51cto.com/attachment/200903/11/502137_1236792772Zogm.png)
进入C盘根目录,发现生成的HelloWorld.pdf文件,打开文件,看看内容是否正确。
![](http://xiaoduan.blog.51cto.com/attachment/200903/11/502137_1236792775C609.png)
![](http://xiaoduan.blog.51cto.com/attachment/200903/11/502137_12367927782nAz.png)
Java操作PDF文件测试成功。但是现在我们项目没有任何实际意义。所以我们要添加数据库。
数据库为Oracle10g,用户名sys1,密码abc,表:emp
![](http://xiaoduan.blog.51cto.com/attachment/200903/11/502137_123679277988R3.png)
表中数据很多,我在这里就不一一列举了。
![](http://xiaoduan.blog.51cto.com/attachment/200903/11/502137_1236792780a3gE.png)
新建一个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 快去看看吧
![](http://xiaoduan.blog.51cto.com/attachment/200903/11/502137_1236792781xDQK.png)
进入C盘根目录,发现生成了DB.pdf文件,打开看看内容是否正确。
![](http://xiaoduan.blog.51cto.com/attachment/200903/11/502137_12367927876o34.png)
![](http://xiaoduan.blog.51cto.com/attachment/200903/11/502137_12367927978JvU.png)
成功!这是Java利用iText操作PDF文件,下次我们用另外一个工具BFO,呵呵,不是UFO。
虽然jacob中也有关于PDF的方法,但是过于复杂。iText是一个开源的PDF工具,小巧而又便捷。
![](http://www.lowagie.com/iText/images/logo.gif)
官方网站是: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 快去看看吧
![](http://xiaoduan.blog.51cto.com/attachment/200903/11/502137_1236792772Zogm.png)
进入C盘根目录,发现生成的HelloWorld.pdf文件,打开文件,看看内容是否正确。
![](http://xiaoduan.blog.51cto.com/attachment/200903/11/502137_1236792775C609.png)
![](http://xiaoduan.blog.51cto.com/attachment/200903/11/502137_12367927782nAz.png)
Java操作PDF文件测试成功。但是现在我们项目没有任何实际意义。所以我们要添加数据库。
数据库为Oracle10g,用户名sys1,密码abc,表:emp
![](http://xiaoduan.blog.51cto.com/attachment/200903/11/502137_123679277988R3.png)
表中数据很多,我在这里就不一一列举了。
![](http://xiaoduan.blog.51cto.com/attachment/200903/11/502137_1236792780a3gE.png)
新建一个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 快去看看吧
![](http://xiaoduan.blog.51cto.com/attachment/200903/11/502137_1236792781xDQK.png)
进入C盘根目录,发现生成了DB.pdf文件,打开看看内容是否正确。
![](http://xiaoduan.blog.51cto.com/attachment/200903/11/502137_12367927876o34.png)
![](http://xiaoduan.blog.51cto.com/attachment/200903/11/502137_12367927978JvU.png)
成功!这是Java利用iText操作PDF文件,下次我们用另外一个工具BFO,呵呵,不是UFO。
相关文章推荐
- 利用java操作Itext创建pdf文件
- Java操作PDF文件(iText)
- Java操作PDF文件(iText)
- Java使用iText实现对PDF文件的操作
- 利用java的iText操作PDF文件
- Java操作PDF文件(iText)
- java操作Excel、PDF文件
- java通过xml配置属性用iText包生成pdf文件
- Java使用Freemarker和iText生成PDF文件
- Java操作PDF文件(BFO)
- Java操作PDF之iText超入门
- Java iText PDF:用 iText 包生成简单的 pdf 文件
- Java生成PDF文件(依赖于iText-2.1.0.jar)
- Java操作PDF之iText超入门
- Java操作PDF之iText超入门
- Java解析PDF文件(PDFBOX、itext解析PDF)导出PDF中的子图片,去除PDF中的水印
- Java解析PDF文件(PDFBOX、itext解析PDF)导出PDF中的子图片,去除PDF中的水印
- 使用iText操作pdf文件
- Java操作PDF之iText超入门
- java操作Excel、PDF文件(转)